SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

最近の SQL Server で取得できるようになっているクエリ情報のメモ

leave a comment

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 拡張イベント」を有効にすることで、軽量プロファイラによる情報取得が可能
  • ライブクエリ統計による実行中のクエリ情報の取得
    • クエリ実行時に実行中のクエリの実行プランを表示するための ライブクエリ統計 の機能が追加されてます。

SQL Server 2016 以降

  • キャッシュされた関数のパフォーマンス糖液を取得するための DMV の追加
    • 関数に特化した、パフォーマンス統計の情報を取得するための DMV として sys.dm_exec_function_stats が追加されています。
  • 同時実行クエリの最適化の制御のためのリソース セマフォの状態を取得するための DMV の追加
  • ワーカーの利用状況を取得するための DMV の追加
    • スケジューラーに割り当てられているワーカー / 使用されているワーカーの情報を取得するための DMV として sys.dm_exec_query_parallel_worker が追加されています。
  • キャッシュされているクエリ情報の DMV の情報の追加
  • 実行中のクエリ情報の DMV の情報の追加
  • セッション単位の待ち事象の DMV の追加

SQL Server 2016 SP1 以降

SQL Server 2016 SP1 CU2 以降

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 17.3 以降

  • 拡張イベントを使用したプロファイル機能の追加
    • 拡張イベントを使用した SQL Server プロファイラ相当の機能である「XEvent プロファイラー」が追加されています。

Written by masayuki.ozawa

12月 26th, 2017 at 11:53 pm

Posted in SQL Server

Tagged with

Leave a Reply

*