スクリプトのパフォーマンス分析

 

SQL Server Data Tools で提供されているツールを使用すると、クエリ、ストアド プロシージャ、またはスクリプトのパフォーマンスを向上できるかどうかを判定できます。たとえば、頻繁に使用するクエリの応答時間など、クライアント統計を監視することで、テーブルに対するクエリまたはインデックスの変更が必要かどうかを判断できます。統計には、クライアントの実行時間、クエリ プロファイル、および送信/受信したパケット数/バイト数があります。

さらに、パフォーマンスの問題によっては、アプリケーションからデータベースに送信されるアプリケーション クエリおよび更新を分析し、これらのクエリおよび更新がデータベース内のデータやデータベース スキーマとどのように相互作用するのかを分析することによって、より適切に対処できます。実行プランでは、SQL Server クエリ オプティマイザーによって選択されたデータ取得方法がグラフィカルに表示され、特定のステートメントまたはクエリの実行コストが示されます。実行プランは、SQL クエリが SQL Server によってどのように処理されるかを理解し、パフォーマンスの低下原因を特定するために役立ちます。

クライアント統計を使用する

Transact-SQL エディターでスクリプトまたはクエリを実行する際には、その実行に関するアプリケーション プロファイル、ネットワーク、時間統計などに関するクライアント統計の収集を選択できます。このようなメトリックスを使用すると、スクリプト効率の測定や、異なるスクリプトの評価を行うことができます。

クライアント統計の収集を切り替えるには、Transact-SQL エディターが開いた状態で、[データ] メニューの [Transact-SQL エディター] をポイントし、[実行設定][クライアント統計情報を含める] の順にクリックします。または、 エディターのツール バーの Transact-SQL[クライアント統計情報を含める] (右から 5 番目のボタン) をクリックするか、Transact-SQL エディターを右クリックして [実行設定][クライアント統計情報を含める] の順にクリックする方法もあります。クエリの統計情報を収集するには、実行前にこの機能をオンにしておく必要があります。

クライアント統計をオンにした場合は、クエリを実行すると [メッセージ] タブの横に [統計] タブが表示されます。クライアント統計をオフにした場合、[統計] タブは表示されません。複数のクエリを連続して実行した場合、統計には平均値も表示されます。

統計情報の収集の詳細については、クエリ ウィンドウの統計ペインおよびこのトピックの「[クライアント統計] タブ」を参照してください。

実行プランを使用する

実行プランには、クエリのほか、更新などその他の DML ステートメントで、データベース エンジンがどのようにテーブル間を移動し、インデックスを使用してデータのアクセスまたは処理を行うのかが表示されます。グラフィカルな実行プランの表示は、クエリのパフォーマンスの特徴を理解するうえで非常に役立ちます。

Transact-SQL エディターで、分析するクエリが含まれている Transact-SQL スクリプトを開きます。確認する対象のコードを選択し、エディターのツール バーの [推定実行プランの表示] をクリックして、推定実行プランを表示することを選択できます。[推定実行プランの表示] をクリックした場合、Transact-SQL クエリまたはバッチは実行されません。代わりに、スクリプトが解析され、クエリが実際に実行された場合にデータベース エンジンによって使用される可能性が最も高いクエリ実行プランが表示されます。

スクリプトが解析または実行された後、[実行プラン] タブをクリックし、実行プラン出力のグラフィカル表現を確認します。

グラフィカルな実行プラン出力は、右から左、上から下に読みます。分析されたバッチ内の各クエリが表示されます。各クエリのコストも、バッチの総コストに占める割合として表示されます。各ステップのコストや演算などの追加情報を表示するには、グラフィカル プラン内の論理演算子および物理演算子のアイコンにマウス ポインターを移動します。

実行プランの表示を変更するには、[実行プラン] を右クリックし、[拡大][縮小][ズームの指定][ウィンドウのサイズに合わせて大きさを変更] のいずれかをクリックします。[拡大][縮小] では、実行プランを固定比率ずつ拡大または縮小できます。[ズームの指定] を使用すると、表示倍率 (80% など) を定義できます。  [ウィンドウのサイズに合わせて大きさを変更] を使用すると、結果ウィンドウのサイズに合わせて実行プランの大きさを調整できます。

実行プランは保存しておき、後で開いて調べることができます。これには、[実行プラン] を右クリックし、[実行プランに名前を付けて保存] をクリックします。これ以降は、他の種類のファイルを開く場合と同様に、Visual Studio でプランを開くことができます。

コード分析を使用する

コード分析を使用すると、デザイン、名前、パフォーマンスに関する問題など、スクリプト内の潜在的な問題を検出できます。  データベース プロジェクト用の規則は、特定の分野を対象とする定義済みの規則セットにまとめられています。[プロジェクトのプロパティ] ページの [コード分析] タブでは、任意の規則を有効化または無効化できます。同じタブで、プロジェクトがビルドされるたびにコード分析が自動的に実行されるように指定することも、警告をエラーとして処理するかどうかを指定することもできます。

コード分析を手動で使用するには、ソリューション エクスプローラーでプロジェクトを右クリックし、[コード分析の実行] をクリックします。コード分析の警告が [エラー一覧] ウィンドウに一覧表示されます。警告をダブルクリックすると、その問題が含まれるソース コードに移動できます。[エラーのヘルプを表示] コンテキスト メニューを使用すると、警告の追加情報および修正候補を表示できます。

コード分析の詳細については、「データベース コードの分析によるコードの品質の向上」を参照してください。