MSSQLSERVER_833

適用于:SQL Server (所有支援的版本) Azure SQL 受控執行個體

詳細資料

屬性
產品名稱 SQL Server
事件識別碼 833
事件來源 MSSQLSERVER
元件 SQLEngine
符號名稱 BUF_LONG_IO
訊息文字 SQL Server 在資料庫 [%ls] (%d) 中的檔案 [%ls] 上發現 %d 次花費 %d 秒以上才完成的 I/O 要求。 作業系統檔案控制代碼為 0x%p。 最新的長 I/O 的位移為: %#016I64x。

說明

此訊息表示SQL Server已從磁片發出讀取或寫入要求,而且要求所傳回的時間超過 15 秒。 此錯誤是由SQL Server所報告,並指出 I/O 子系統發生問題。 您可能也會注意到與此訊息建立關聯的其他徵兆:PAGEIOLATCH 等候的延遲時間很長、系統事件記錄檔中的警告或錯誤、系統監視器計數器中的磁碟延遲問題指示。 監視 sys.dm_io_virtual_file_stats,並為儲存體輸送量選擇適當的儲存層與 IOPS。

可能的原因

造成此問題的原因可能是作業系統效能問題、硬體錯誤、韌體錯誤、裝置驅動程式問題,或篩選驅動程式介入 I/O 處理序或資料庫檔案的儲存體路徑。 SQL Server 會記錄其起始 I/O 要求的時間,並記錄 I/O 完成的時間。 如果該差異為 15 秒或更久,則會偵測到此狀況。 這也表示,SQL Server 不是此訊息所描述及報告延遲 I/O 狀況的原因。 此條件稱為「停止 I/O」。大部分的磁片要求都會在磁片的一般速度內發生。 這種典型的磁片速度通常稱為「磁片搜尋時間」。大部分標準磁片的磁片搜尋時間會在 10 毫秒或更少的情況下發生。 因此,對於系統 I/O 路徑回到 SQL Server 來說,15 秒是很長的時間。

使用者動作

查看系統事件記錄檔中是否有與硬體相關的錯誤訊息,以便對此錯誤進行疑難排解。 同時,也查看硬體特定的記錄檔 (如果有的話)。 您應該使用必要方法和技術來判斷造成作業系統延遲的原因 (透過驅動程式或透過 I/O 硬體)。 此問題的解決方法可能牽涉到更新所有裝置驅動程式和韌體,或執行與您磁碟系統相關聯的其他診斷。

使用「效能監視器」檢查下列計數器︰

  • Average Disk Sec/Transfer

  • Average Disk Queue Length

  • Current Disk Queue Length

例如,執行SQL Server電腦上的平均磁片秒/傳輸時間通常小於 15 毫秒。 如果 Average Disk Sec/Transfer 值增加,表示 I/O 子系統並未以最佳的方式應付 I/O 需要。

您也可以使用像是 Storport ETW 記錄 \(英文\) 的設備來測量對磁碟單位提出的要求延遲。 另一個類似的磁碟 I/O 疑難排解套件是以 Windows 效能記錄器 \(部分機器翻譯\) 的內建設定檔形式提供。

注意

防毒程式可能會降低磁碟存取的速度。 若要提高存取速度,請排除錯誤訊息中指定的SQL Server資料檔案,以從作用中的病毒掃描中排除。 您可以使用 fltmc.exe 命令列公用程式 \(英文\) 來查詢安裝在系統上的所有篩選器驅動程式,並了解其在資料庫檔案儲存體路徑上所執行的功能。

如需 I/O 錯誤的詳細資訊,請參閱 Microsoft SQL Server I/O Basics, Chapter 2 (第 2 章 Microsoft SQL Server I/O 基本概念) 以及 https://support.microsoft.com/kb/897284/en-us 的知識庫文章。