ASYNC_IO_COMPLETION Wait Type in SQL Server

ASYNC_IO_COMPLETION means SQL Server issued asynchronous I/O against a data file and is waiting for it to complete. Unlike the PAGEIOLATCH_* family, which covers ordinary page reads into the buffer pool, this wait belongs to bulk file operations: the data-reading side of backups, checkpoint writes flushing dirty pages, restores laying data down, and similar large-scale file work.

That distinction is useful in both directions. A server showing high ASYNC_IO_COMPLETION but quiet PAGEIOLATCH_* has a maintenance I/O story, not a query I/O story.

Is It a Problem?

It is expected in volume during backup and maintenance windows; a full backup of a large database legitimately accumulates hours of this wait across its threads. It becomes a problem when it dominates during business hours, when backup durations trend upward, or when checkpoint writes are visibly fighting the user workload for the same disks.

Common Causes

  • Backups reading data files, with the wait stretching as source volumes or the backup target slow down.
  • Checkpoint flushing large amounts of dirty pages after big modifications.
  • Restores, database creation, and other bulk file operations.
  • Maintenance I/O and user workload overlapping on the same storage path.

What To Do

  1. Correlate the wait with your job schedule first. If it maps cleanly onto backup and maintenance windows, judge those operations by their duration trends rather than the wait total.
  2. Measure the storage path: sys.dm_io_virtual_file_stats stalls on the data files, plus throughput on the backup target.
  3. Move heavy maintenance off peak hours, and consider backup compression, which cuts the bytes written at the cost of CPU.
  4. If checkpoint is the driver, indirect checkpoints (TARGET_RECOVERY_TIME) smooth write bursts into a steadier stream.

How To See It

Use Get-WaitStatistics to rank it, then correlate with backup, restore, and maintenance run windows.


Part of the SQL Server Wait Types Library.
Related deep dive: BACKUPIO and BACKUPBUFFER.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *