SQL Server のバージョンが上がることで、クエリの情報で取得できるものも変化しており、問題解決に便利な情報が取得できるようになっています。
きちんと把握できていない項目等もあるため、一度まとめてみたいと思います。
SQL Server 2014 以降
- バッファ情報を取得するための DMF の追加
- 「DBCC INPUT BUFFER」相当の情報を取得するための DMF として sys.dm_exec_input_buffe が追加されています。
- 実行中のクエリの進行状況を取得するための DMV の追加
- 実行中のクエリの進行状況を取得するための DMV として sys.dm_exec_query_profiles が追加されています。
- 下記段落に記載しているバージョンでない場合、「SET STATISTICS XML ON」または「SET STATISITCS PROFILE ON」が有効でない、「query_post_execution_showplan」拡張イベントが有効でない状態で実行されたクエリについては情報の取得は行われません。
- SQL Server 2014 SP2 / 2016 SP1 以降では、「TF 7412 の有効化」または、「query_thread_profile 拡張イベント」を有効にすることで、軽量プロファイラによる情報取得が可能
- Developers Choice: Query progress ? anytime, anywhere
- 情報を取得するための DMV として sys.dm_exec_query_statistics_xml が追加されています。
- ライブクエリ統計による実行中のクエリ情報の取得
- クエリ実行時に実行中のクエリの実行プランを表示するための ライブクエリ統計 の機能が追加されてます。
SQL Server 2016 以降
- キャッシュされた関数のパフォーマンス糖液を取得するための DMV の追加
- 関数に特化した、パフォーマンス統計の情報を取得するための DMV として sys.dm_exec_function_stats が追加されています。
- 同時実行クエリの最適化の制御のためのリソース セマフォの状態を取得するための DMV の追加
- クエリ実行時のメモリゲートウェイの割り当て状況を取得するための DMV として sys.dm_exec_query_optimizer_memory_gateways が追加されています。
- ワーカーの利用状況を取得するための DMV の追加
- スケジューラーに割り当てられているワーカー / 使用されているワーカーの情報を取得するための DMV として sys.dm_exec_query_parallel_worker が追加されています。
- キャッシュされているクエリ情報の DMV の情報の追加
- sys.dm_exec_query_stats に次の情報が追加されています。
- クエリストアの sys.query_store_query / sys.query_store_query_text と関連付けるための情報の追加
- DOP / メモリ / スレッド情報の追加
- 実行中のクエリ情報の DMV の情報の追加
- sys.dm_exec_requests に次の情報が追加されています。
- クエリストアの sys.query_store_query / sys.query_store_query_text と関連付けるための情報の追加
- DOP の情報の追加
- セッション単位の待ち事象の DMV の追加
- セッション単位の待ち事象の情報を取得するための DMV として sys.dm_exec_session_wait_stats が追加されています。
SQL Server 2016 SP1 以降
- 実際の実行プランの情報の待ち事象が追加
- 「実際の実行プラン」を取得した際に、実行プランに待ち事象の情報が追加されています。
SQL Server 2016 SP1 CU2 以降
- 統計情報のヒストグラムを取得するための DMF の追加
- 「DBCC SHOW_STATISTICS WITH HISTOGRAM」相当の情報を取得するための DMF として sys.dm_db_stats_histogram が追加されています。
SQL Server 2017 以降
- クエリストアで待ち事象の情報が取得可能
- クエリストアで待機情報が取得できるようになっています。
待機クエリの検索 - これに伴い、sys.query_store_wait_stats という DMV が追加されており、クエリストアから待ち事象の情報が取得できるようになっています。
- 実行プランから最適化に使用された統計情報を取得することが可能
- 実行プラン (実際の実行プラン / 推定実行プラン / キャッシュされた実行プラン) から、プランの生成に使用された統計情報を取得することができるようになっています。
SQL Server 2017 CU3 以降 (SQL Server 2016 SP2 以降)
- CXPACKET の待ち事象の細分化
- 従来の CXPACKET の待ち事象が、実行可能待機である CXPACKET とコンシューマースレッドの待機状態 (無視できる待機状態) である CXCONSUMER に分けられる。
SSMS 17.0 以降
- 実行プランの解析機能の追加
- 実行プランの分析 / 実行プランの比較が可能になっています。
SSMS 17.2 以降
- パフォーマンスダッシュボードのビルトイン
- パフォーマンスダッシュボードが SSMS にビルトインされています。
- 実行プランの検索方法の詳細化
- 実行プランから特定の要素の情報を検索するというような詳細な検索が可能に
SSMS 17.3 以降
- 拡張イベントを使用したプロファイル機能の追加
- 拡張イベントを使用した SQL Server プロファイラ相当の機能である「XEvent プロファイラー」が追加されています。