SET STATISTICS IO (Transact-SQL)
使 SQL Server 顯示 Transact-SQL 陳述式所產生之磁碟活動量的相關資訊。
適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。 |
語法
SET STATISTICS IO { ON | OFF }
備註
當 STATISTICS IO 是 ON 時,會顯示統計資訊。 當它是 OFF 時,就不會顯示這項資訊。
在這個選項設為 ON 之後,所有後續 Transact-SQL 陳述式都會傳回統計資訊,直到這個選項設為 OFF 為止。
下表列出和描述輸出項目。
輸出項目 |
意義 |
---|---|
資料表 |
資料表的名稱。 |
掃描計數 |
為了建構輸出的最終資料集,在達到分葉層級之後朝任何方向啟動以擷取所有值的搜尋/掃描次數。
|
邏輯讀取 |
從資料快取中讀取的頁數。 |
實體讀取 |
從磁碟中讀取的頁數。 |
讀取前讀取 |
放入查詢快取中的頁數。 |
LOB 邏輯讀取 |
從資料快取中讀取的 text、ntext、image 或大數值類型 (varchar(max)、nvarchar(max)、varbinary(max)) 頁數。 |
LOB 實體讀取 |
從磁碟中讀取的 text、ntext、image 或大數值類型頁數。 |
LOB 讀取前讀取 |
放入查詢快取中的 text、ntext、image 或大數值類型頁數。 |
SET STATISTICS IO 的設定是在執行階段進行設定,而不是在剖析階段進行設定。
注意
當 Transact-SQL 陳述式擷取 LOB 資料行時,有些 LOB 擷取作業可能需要往返 LOB 樹狀結構多次。這可能造成 SET STATISTICS IO 報告的數字高於預期的邏輯讀取次數。
權限
若要使用 SET STATISTICS IO,使用者必須有執行 Transact-SQL 陳述式的適當權限。 不需要 SHOWPLAN 權限。
範例
這個範例會顯示 SQL Server 在處理陳述式時,使用多少邏輯和實體讀取。
USE AdventureWorks2012;
GO
SET STATISTICS IO ON;
GO
SELECT *
FROM Production.ProductCostHistory
WHERE StandardCost < 500.00;
GO
SET STATISTICS IO OFF;
GO
結果集如下:
Table 'ProductCostHistory'. Scan count 1, logical reads 5, physical
reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0,
lob read-ahead reads 0.