資料庫管理系統(如 SQL Server)高度依賴檔案輸入/輸出(I/O)操作的及時完成。任何硬體故障、固件配置錯誤、濾鏡驅動程式干擾、壓縮機制、程式錯誤,以及 I/O 路徑上的其他異常狀況,都可能導致 I/O 請求被阻塞或延遲,進而嚴重拖垮 SQL Server 的效能表現。
指必須靠外部干預(如重啟系統)才能完成的 I/O 請求(通常指 I/O 請求封包 IRP)。這類情況強烈暗示硬體故障或 I/O 路徑組件存在程式錯誤,後果通常極為嚴重,往往導致資料庫完全無響應。
指雖無需人工干預即可完成,但耗時超過預期閾值的 I/O 請求。成因多為硬體配置不當、固件設定錯誤或濾鏡驅動程式介入。雖不致癱瘓系統,但會引發阻塞、鎖存器爭用、查詢逾時、回應時間過長及資源過度消耗等連鎖反應。
SP4 版本在資料庫與記錄檔的 I/O 讀寫邏輯中,加入了對延遲與阻塞狀況的主動檢測。當單次 I/O 操作超過 15 秒 仍未完成時,SQL Server 會在錯誤日誌中記錄類似以下的警告訊息:
2004-11-11 00:21:25.26 spid1 SQL Server has encountered 192 occurrence(s) of IO requests taking longer than 15 seconds to complete on file [E:\SEDATA\stressdb5.ndf] in database [stressdb] (7). The OS file handle is 0x00000000000074D4. The offset of the latest long IO is: 0x00000000022000
此訊息揭示:目前工作負載已超出 I/O 子系統或系統配置的處理能力,或是 I/O 路徑中存在軟體(固件/驅動程式)或硬體故障。
檢測與報告是針對每個檔案獨立進行的兩個不同操作:
-T830 或 DBCC TRACEON(830, -1) 完全停用檢測(不建議,除非經廠商指導)。收到此類錯誤時,應優先檢查:磁碟子系統效能計數器、驅動程式/固件版本、防毒軟體或備份軟體是否攔截 I/O、磁碟陣列控制器快取策略、以及是否存在已知的硬體相容性問題。建議聯繫硬體廠商進行深度診斷。