次の方法で共有


SET STATISTICS IO (Transact-SQL)

SQL Server で、Transact-SQL ステートメントのディスク利用状況に関する情報を表示します。

トピック リンク アイコン Transact-SQL 構文表記規則

構文

SET STATISTICS IO { ON | OFF }

説明

STATISTICS IO が ON の場合、統計情報が表示されます。 OFF の場合、情報は表示されません。

返される情報は、このオプションが ON に設定されてから OFF に設定されるまでに実行される、すべての Transact-SQL ステートメントに関する統計情報です。

次の表は、出力アイテムの一覧とその説明です。

出力アイテム

意味

Table

テーブルの名前。

Scan count

すべての値を取得して出力の最終的なデータセットを構築するために、任意の方向のリーフ レベルに達した後に開始されるシーク/スキャンの数。

  • 使用されるインデックスが主キーの一意のインデックスまたはクラスター化インデックスで、1 つの値のみシークしている場合、Scan count は 0 になります。 たとえば、WHERE Primary_Key_Column = <value> となります。

  • 主キー列以外の列で定義された一意でないクラスター化インデックスを使用して 1 つの値を検索する場合 Scan count は 1 になります。 これは、検索対象のキー値の重複値を確認する場合に実行されます。 たとえば、WHERE Clustered_Index_Key_Column = <value> となります。

  • N が、インデックス キーを使用してキー値を検索した後にリーフ レベルで左側または右側に向かって開始される異なるシーク/スキャンの数である場合、Scan count は N となります。

logical reads

データ キャッシュから読み取られたページ数

physical reads

ディスクから読み取られたページ数

read-ahead reads

クエリ用のキャッシュに読み取られたページ数

lob logical reads

データ キャッシュから読み取られた、text、ntext、image 型、またはサイズの大きな値をとるデータ型 (varchar(max)、nvarchar(max)、varbinary(max)) のページの数

lob physical reads

ディスクから読み取られた、text、ntext、image 型、またはサイズの大きな値をとるデータ型のページの数

lob read-ahead reads

クエリ用のキャッシュに読み込まれた、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.

関連項目

参照

SET ステートメント (Transact-SQL)

SET SHOWPLAN_ALL (Transact-SQL)

SET STATISTICS TIME (Transact-SQL)