SE の雑記

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

Pssdiag/Sqldiag Manager と SQL Nexus Tool を使用した情報の取得と可視化

leave a comment

Pssdiag/Sqldiag Manager と、SQL Nexus Tool というツールを組み合わせることで、SQL Server の情報の取得と可視化を行うことができます。

Pssdiag/Sqldiag Manager は、PSSDIAG の情報取得をするための設定ファイルの作成を支援するための機能で、最新バージョンでは、SQL Server 2016 まで、対応したものが公開されています。
CodePlex で公開されていたものは、少し手を加えないと SQL Server 2016 に対応していないものでしたが、Github で公開されている最新版は SQL Server 2016 に対応したものとなっています。

image

SQL Nexus は PSSDIAG で取得された情報を可視化するものとなり、取得したデータ加工してレポートを作ってくれます。

両ツールを久しぶりに使ってみたところ、いくつかポイントがありましたので軽くまとめておきたいと思います。

Pssdiag/Sqldiag Manager の設定ですが、「Collect SQLDiag DMVs」の「Startup」を有効にしておくのがよいと思います。

「Startup」を有効にして情報を取得しないと「Perfmon Summary」を表示した際に、「System.Data.SqlClient.SqlException (0x80131904): オブジェクト名 ‘dbo.tbl_XPMSVER’ が無効です。」のエラーが発生してしまうかと。

、「Collect SQLDiag DMVs」の「Startup」を有効にして情報の取得を行うことで、「xp_msver」が実行され、「tbl_XPMSVER」を作成するための情報が取得されます。
これにより、パフォーマンスモニターの情報をレポートすることが可能となります。
image

もう一つ覚えておいた方がよさそうなことが「Top 10 memory consuming processes by average」をクリックした際の情報でしょうか。

私の環境では、この情報の詳細を表示しようとすると「System.Data.SqlClient.SqlException (0x80131904): 文字列から日付と時刻、またはそのいずれかへの変換中に、変換が失敗しました。」のエラーが発生してしまいました。

このエラーは「CounterData」の「CounterDateTime」の変換でエラーになってしまっています。

「CounterDatetime」ですが、「2017-02-05 20:59:47.143」の形式なのですが、24 バイトデータが入っているようなのですよね。
# 24 バイト目に 00 が入っているようなのですよね。

とりあえず、以下のクエリで 24 バイト目を削ってしまえば、データが表示できるようになるかと。

UPDATE CounterData SET CounterDateTime = LEFT(CounterDateTime, 23)

image

クエリストアの情報の取得と可視化も実施しているようなので、時間のある時に一通り情報を見ておこうかと思います。

image

Share

Written by Masayuki.Ozawa

2月 5th, 2017 at 9:23 pm

Posted in SQL Server

Tagged with ,

Leave a Reply