- - PR -
クエリアナライザのトレースについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-12-01 12:53
いつもお世話になります。
SQLServer2000のクエリアナライザにて、ストアドプロシージャを実行した際に表示されるトレースについて質問があります。 ストアドプロシージャ@とストアドプロシージャAをそれぞれ実行した結果、下記のようにトレースが表示されました。またストアドの中身は以下になります。 ■トレース結果 TEXT EventClass Duration CPU ------------------------------------------------------- @SQL文〜 SP:StmtCompleted 93 47 ストアド名 SQL:StmtCompleted 93 47 ------------------------------------------------------- ASQL文〜 SP:StmtCompleted 90 78 ストアド名 SQL:StmtCompleted 22 109 ■ストアド詳細 ストアド@ SELECT * From ビューA (ビューA:SELECT * FROM OPENQUERY(サーバー名,'SELECT * FROM データベース名.テーブル名)) ストアドA SELECT * From OPENQUERY(サーバー名,'SELECT * FROM データベース名.テーブル名)) 質問1. @、Aともそれぞれ2行の結果が返されています。両方のDurationの合計値がストアドプロシージャの実行にかかった時間と言うことで宜しいのでしょうか? → @のストアド(93+93=186)、Aのストアド(90+22=112)でAの方が処理が早い? 質問2. @とAではAの方がCPUの数値が高い為、処理速度が遅くても@を使用した方がサーバーへの負荷が少なく他の処理に影響を与えないと言うことでしょうか? トレースやプロファイラについてご存知の方がおられましたら、アドバイスをお願いします。 |
|
投稿日時: 2007-12-02 01:18
「SQL文」と「ストアド名」の記述が逆で間違いですよね?
合計ではなく、Aのケースだと、ストアドが90マイクロ秒かかっており、 そのストアドの中で実行されているSQLが22マイクロ秒となります。 @とAの比較ということですが、誤差の範囲(マシンの状況により 変動してしまう範囲)かもしれません。 ストアドが何をしているのか分からないですが、仮に、ストアド詳細の ところに書いてある2つのSQLの実行効率を比較したいということで あれば、今回の場合、プロファイラではなく、実行計画で比較した方が 良いかもしれません。 |
1