SE の雑記

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

Archive for 4月 30th, 2020

Azure Data Studio を使用した統計情報のヒストグラムの可視化

without comments

可視化の方法は様々なものが使用できますが、Azure Data Studio (ADS) にはグラフを作成するための機能がありますので、この機能を利用して SQL Server の統計情報のヒストグラムを可視化する方法を紹介したいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 30th, 2020 at 11:20 pm

SQL Server エージェント ジョブのプログラム名をジョブ名に変換する

without comments

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 を実際のジョブ名と関連付けることができます。

image

sys.dm_exec_requests と sys.dm_exec_sessions を組み合わせて、実行中のクエリ情報を取得する際にはプログラム名も取得するのが定石となります。

SQL Server エージェント ジョブについても「実際にはどのジョブなのか?」が確認できた方が分析の効率が良いですので、このような方法で program_name をジョブ名と関連付けるための方法は覚えておくとよいかと。

Written by Masayuki.Ozawa

4月 30th, 2020 at 12:15 am

Posted in SQL Server

Tagged with