いうツールを公開しました。データベースに格納することができます。これによりどのような情報の解析が可能となるかを見ていきたいと思います。アプローチは「連続した面の情報により線を作る」というものになります。状況を確認する中で、「時系列データ」としての情報が必要となることがあります。「インデックスの使用状況」で考えてみます。サービスを最後に起動してからの累計値となります。時にどのインデックスが何回使用されたのか」までは把握することはできません。情報をダンプし、前回取得時間との差分を抽出する必要があります。情報をダンプ」するのが「Collect-QueryInfo」となります。使用方法はシンプルで、「Collect-QueryInfo.ps1」を実行するだけです。接続の情報や、実行に使用するクエリのパスがスクリプト内に記載されているので次の個所を変更してください。実行することで情報の取得が開始されます。ジョブとして、各スクリプトがバックグラウンドで実行されます。以降」を使用するようにしてください。ログは大量の行となるため、各テーブルはページ圧縮を使用しています。データ圧縮を使用することができますので、ログによるストレージサイズを削減することができます。情報の取得を終了したい場合は「Ctrl+C」でスクリプトを中断してください。取得した情報は、各情報に対応した「Result.sql」を実行することで情報を成型することができます。インデックスの使用状況の情報であれば、次のような結果を取得することができます。この情報から「特定の時間帯にアクセスが行われたインデックスと操作の回数」を取得することができます。グラフ化を行うことで「各インデックスがどの時間帯にどの程度アクセスされたか」という情報を把握することができます。普段ではあまり見ないような情報を確認することができます。Requests/sec」の時系列データで確認することができるのは一般的な話かと思います。Statistics」の時系列データを組み合わせると「実行されたバッチを「実行にかかった時間の分布」で詳細化」するというようなアプローチが可能となります。Requests/sec」と同じなのですが、「実行にかかった時間の分布」で分類された積み上げグラフとなっていますので、該当の時間帯に実行されたバッチが「短時間で完了しているクエリなのかどうか」ということを判断することができます。情報を連続して取得を行うことで対応を行います。情報を時系列にすることで「どの待ち事象がどの時間帯に発生したか」という解析を詳細に行うことができます。種類についての情報を取得するものとなっていますが、追加で取得したい情報があれば、クエリの追加とスクリプト一部修正で対応できるかと思います。時系列データとして使用するアプローチは一度仕組みを作ってしまえば、汎用的に使用できるものとなりますので、自分の作りやすい言語で一度ツール化してみるとよいかと。チューニング等をメインにしていますが、本ブログで情報発信している内容に関することでしたら対応できます。お仕事のご相談がありましたらTwitterfacebookやブログのコメントでご連絡いただけると幸いです。ブログにコメント頂いた内容は私が承認しない限り表示されません。受賞させていただきました。本ブログの内容は個人的に検証したものとなり、検証結果を含め記載している内容を保証するものではありません。体験記の連載をさせていただきました。最後まで飲み切れず...。