為什麼 SQL Server IO 比磁碟容量慢這麼多?

為什麼 SQL Server IO 比磁碟容量慢這麼多?

我正在運行 SQL Server 2012,並執行一個簡單的 SELECT * 查詢,我可以看到效能監視器中的磁碟 IO < 10MB/s。但是,如果我對資料庫進行備份,我會看到值 > 200 MB/s。

為什麼 sql server 為我檢索資料這麼慢?

答案1

您只能看到 10MB/秒的原因是這些效能計數器查看從一秒到下一秒的數據,而不是同一時間範圍內的單一操作。因此,您的查詢可能在不到一秒的時間內拉取了 10MB,但這只會在效能監視器中註冊為 10MB/秒。

備份會全面提取大量數據,因此它將以磁碟的全速註冊。如果它能夠為單一操作註冊磁碟 IO,它可能會說 200mb/sec 或類似的東西,對於較小的資料包可能甚至更高,因為速度幾乎不可能衡量小資料包。

希望這可以幫助。

答案2

事實證明,我從查詢中讀取的所有資料都是直接從記憶體中讀取的,而不是從磁碟中讀取的。我能夠知道這一點的方法是在查詢之前執行以下命令:

SET STATISTICS IO ON

之後,我運行查詢並查看訊息選項卡的統計資料。邏輯讀取來自內存,物理讀取來自磁碟。

相關內容