SQL Serverでは、SET STATISTICS PROFILE
を使用できます。 T-SQLステートメントのプロファイル情報を表示するステートメント。
STATISTICS PROFILE
アドホッククエリ、ビュー、およびストアドプロシージャで機能します。
STATISTICS PROFILE
の場合 ON
に設定されています 、実行された各クエリは通常の結果セットを返し、その後にクエリ実行のプロファイルを示す追加の結果セットが続きます。
例
これがデモンストレーションの簡単な例です。
SET STATISTICS PROFILE ON;
GO
SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
GO
結果:
これにより、SHOWPLAN_ALL
と同じ列が返されます。 プラス2つの追加(行)を返します および実行 列)。
このスクリーンショットは、AzureDataStudioでそのステートメントを実行したときに撮影されました。
もう1つの簡単な例を次に示します。今回は、mssql-cli(コマンドラインインターフェイス)でステートメントを実行します。
SET STATISTICS PROFILE ON;
GO
SELECT * FROM Cats;
GO
結果(垂直出力を使用):
Commands completed successfully. +---------+-----------+ | CatId | CatName | |---------+-----------| | 1 | Meow | | 2 | Fluffy | | 3 | Scratch | +---------+-----------+ (3 rows affected) -[ RECORD 1 ]------------------------- Rows | 3 Executes | 1 StmtText | SELECT * FROM Cats StmtId | 1 NodeId | 1 Parent | 0 PhysicalOp | NULL LogicalOp | NULL Argument | NULL DefinedValues | NULL EstimateRows | 3 EstimateIO | NULL EstimateCPU | NULL AvgRowSize | NULL TotalSubtreeCost | 0.0032853 OutputList | NULL Warnings | NULL Type | SELECT Parallel | 0 EstimateExecutions | NULL -[ RECORD 2 ]------------------------- Rows | 3 Executes | 1 StmtText | |--Clustered Index Scan(OBJECT:([Test].[dbo].[Cats].[PK__Cats__6A1C8AFAB3EF1A8F])) StmtId | 1 NodeId | 2 Parent | 1 PhysicalOp | Clustered Index Scan LogicalOp | Clustered Index Scan Argument | OBJECT:([Test].[dbo].[Cats].[PK__Cats__6A1C8AFAB3EF1A8F]) DefinedValues | [Test].[dbo].[Cats].[CatId], [Test].[dbo].[Cats].[CatName] EstimateRows | 3 EstimateIO | 0.003125 EstimateCPU | 0.0001603 AvgRowSize | 142 TotalSubtreeCost | 0.0032853 OutputList | [Test].[dbo].[Cats].[CatId], [Test].[dbo].[Cats].[CatName] Warnings | NULL Type | PLAN_ROW Parallel | 0 EstimateExecutions | 1 (2 rows affected) Commands completed successfully.
オフにする方法
STATISTICS PROFILE
を有効にするには オフの場合は、OFF
を使用して再度実行します ON
の代わりに :
SET STATISTICS PROFILE OFF;
GO
はSTATISTICS PROFILE
です 非推奨ですか?
現在のドキュメントではそれについて言及されていませんが、SET STATISTICS PROFILE
将来のショープランバージョンでは廃止が予定されているようです。
この古いMSDNの記事によると、SET STATISTICS PROFILE
は将来のshowplanバージョンで廃止される予定であり、SET STATISTICS XML
を使用することをお勧めします。 代わりに。
また、SET STATISTICS XML
の現在のドキュメント これをサポートします:
SETSTATISTICSPROFILEとSETSTATISTICSXMLは、相互に対応しています。前者はテキスト出力を生成します。後者はXML出力を生成します。 SQL Serverの将来のバージョンでは、新しいクエリ実行プラン情報は、SET STATISTICS PROFILEステートメントではなく、SETSTATISTICSXMLステートメントを介してのみ表示されます。
したがって、おそらくSET STATISTICS XML
を使用することにはメリットがあります。 SET STATISTICS PROFILE
の代わりに 可能な場合。