可視化の方法は様々なものが使用できますが、Azure Data Studio (ADS) にはグラフを作成するための機能がありますので、この機能を利用して SQL Server の統計情報のヒストグラムを可視化する方法を紹介したいと思います。
Archive for 4月, 2020
SQL Server エージェント ジョブのプログラム名をジョブ名に変換する
SQL Server で SQL Server エージェントでジョブを実行している場合、sys.dm_exec_sessions の「program_name」に 「SQLAgent – TSQL JobStep (Job 0x66479B4A282C8545BED20F14B618478A : Step 2)」というような形式で表示が行われています。
この際、表示されている program_name ですが、GUID を Binary 表示したものとなっています。
これをジョブ ID と関連付けるためには、次のようなクエリを実行します。
SELECT T.*, j.name, j.description FROM ( SELECT program_name, CAST( CONVERT(varbinary, SUBSTRING( program_name, CHARINDEX('0x', program_name), 34 ),1) AS uniqueidentifier) AS job_id FROM sys.dm_exec_sessions AS es WHERE program_name Like '%JobStep%0x%' ) AS T LEFT JOIN msdb.dbo.sysjobs AS j ON j.job_id = T.job_id
これにより、SQL Server エージェント ジョブの program_name を実際のジョブ名と関連付けることができます。
sys.dm_exec_requests と sys.dm_exec_sessions を組み合わせて、実行中のクエリ情報を取得する際にはプログラム名も取得するのが定石となります。
SQL Server エージェント ジョブについても「実際にはどのジョブなのか?」が確認できた方が分析の効率が良いですので、このような方法で program_name をジョブ名と関連付けるための方法は覚えておくとよいかと。
Azure Data Studio で KQL の実行が可能になりました
The April 2020 release of Azure Data Studio is now available で Azure Data Studio 1.17.0 のリリースがアナウンスされました。
このリリースから Notebook で KQL Magic がサポートされ、KQL の実行が可能になったようです。
Windows Server 2016 以降の Windows Update ログの確認
Windows 10 ならびに Winodws Server 2016 /2019 の Windows Update のログを確認するときのメモを。
以前 直近の Windows Update の実行状態をスクリプトで取得する というブログを書きましたが、上記の OS では、Update Session Orchestration (USO) のログを見ることで新たな洞察を得られることもありますので、情報を追加しておきたいと思います。
sys.dm_exec_requests を活用したクエリの実行状況の取得
SQL Server 2016 以降では、クエリ情報の取得はクエリストアを使用して取得を行うことができるようになり、SQL Server / Azure SQL Database では、この機能 (または、クエリストアを活用した機能) により、クエリ実行情報を取得することが一般的な方法となってきているのではないでしょうか。
SQL Server 2016 より前のバージョンでは、次のような DMV を使用して情報の取得が行われるケースが多かったかと思います。
SQL Server 2016 以降の環境で、クエリストアが有効になっている環境でも、これらの DMV を活用した方が、クエリの実行状態を細かに分析することができるケースがあります。
本投稿では sys.dm_exec_requests を使用したクエリの実行状況の取得について見ていきたいと思います。