SQL Serverプロファイラトレースの期間値は、同じクエリを実行し、クエリの実行のなぜそれは、または私が欠けている他のものは何ですか?クエリは、クエリがそれ自身で実行された場合よりもトレースの持続時間の方が大きいことを示します。
答えて
どのくらいの大きさですか?プロファイラでは、持続時間はマイクロ秒単位で保存されることがわかります。したがって、1000000は1秒を意味します。
さらに、実行計画の再利用やSSMSはUIツールであり、クエリをデータベースに送信する前に何か他のことを行っている可能性があることを考慮する必要があります。 DB上の実行から直接統計を取得すると、実行に数秒かかることがあります。
動的に生成されるSPのプロファイリング部分のバージョンはありますか?
..
@sql = 'select * from ' + @tablename
exec (@sql)
ほとんどのSPは、上記事前にコンパイルなることはないだろうスニペットとしてコンパイル済みの非静的コードとの最初の実行が、SPの後にあります。しかし、あなたが実行していたクエリウィンドウ内にある場合
select * from the_table_name
これは表示されている違いを示している可能性があります。私は恐れているが、推測のビット。クエリがSPの一部である場合、クエリの実行方法について詳しく知ることができます。
はい、プロファイリングするクエリは動的に生成されるSPの一部です。このようなその何か: - 幹部sp_executesqlをN'SELECT this_.Id Id167_1_、incomingfi1_.IdとしてId164_0_としてBusinessObject_SourceCMEHMatchRecord FROM this_インナーはthis_.SystemId BY this_.IncomingFile = incomingfi1_.Id WHERE incomingfi1_.SystemId = @ P0 ORDERにBusinessObject_IncomingFileのincomingfi1_に参加asc。 '、N' @ p0 int '、@ p0 = 1 しかし、このクエリをSSMS経由で実行すると、完全なクエリ(exec sp付き)または選択部分(パラメータ付き)時間。 –
私が考えることができる唯一の理由は、正しいかどうかわからないのは、元のクエリがWebアプリケーションから起動されているため、Webサーバにデータをフェッチする時間も含まれている可能性があります。 SSMSを実行する場合、データを取得するのは簡単ではありません。 –
ああ、サーバーで直接クエリを実行していますか? webappは遠隔地ですか?これをプロファイリングしている場合でも、クエリがサーバー上でどれくらいの時間かかるかは測定する必要はありません。なぜなら、唯一の '動的な'部分がwhereステートメントの変数であるように、そのような方法でクエリを構築する必要があるのかどうかはわかりません。 – Paul
- 1. データベースよりもOBIEE Weblogicで実行されたクエリの方が時間がかかります
- 2. Xより大きい時間に更新された場合
- 3. 値が1より大きい場合、これを実行します
- 4. DELETEクエリが長時間実行されています
- 5. フィルタ実行時のクエリが正しくありません - クエリが実行されていません
- 6. SQLクエリではクエリdbよりも多くの時間がかかります
- 7. MySQLのクエリ、結合、および自分自身、または私がいつも苦労する方法
- 8. ネストされたクエリのSQLは、実行することができません
- 9. Java:接続が拒否されましたが、そうでない場合はnetstatと表示されます
- 10. 私は、クエリを実行することができますどのようにすると時間=この
- 11. 固定されたコントロールは、それ自身でフォームを実行します
- 12. クエリが実行される時間を測定するiPad
- 13. MS Accessを使用したDelphi ADO - 特定のクエリを実行するとクエリ時間が短縮される
- 14. mySqlクエリが返される行が等しい場合
- 15. このクエリはサブクエリの合計よりもずっと長く実行されるのはなぜですか?
- 16. Linuxシングルインスタンスが長時間実行されない場合は終了します
- 17. が、私はこれを行うことによって自分自身にテーブルを結合し、クロスを推薦人見てきた2つのクエリ
- 18. クエリ実行時間が遅い
- 19. RedShiftでクエリが初めて実行されたときのランタイム
- 20. タクソノミを持つWordpressクエリのXの値が他のクエリよりも小さい場合
- 21. mclapplyユーザーの時間が経過時間よりも大きい
- 22. 列の値をクエリで返された行数で除算します。それは単一のクエリで行うことができますか?
- 23. ボタンクリック時にクエリを実行するチェックボックスがオンの場合
- 24. Wordpress MySQLクエリの実行に時間がかかります
- 25. mysqlクエリの実行に時間がかかります
- 26. クラスはそれ自身のオブジェクトを返すことができます
- 27. Entity Framework - 複数のクエリが同時に実行されたときのエラー
- 28. SQL Server Stored Procは、Management Studioのテキストから実行された同じクエリよりも実行に時間がかかります
- 29. 時間単位で実行されないときはいつでも、毎時cronジョブを実行します。
- 30. ネストされたクエリ、これを行う最もよい方法。添付の例
はい、プロファイラの所要時間はマイクロ秒です。正確な値は13958727で、約13秒です。ただし、同じクエリを正常に実行すると、約2〜3秒かかるだけです。 –
次の質問は、SSMSがクエリを最適化しているという事実に基づいて、クエリ実行時間の大きな違いを説明できるかどうかです。 –
いいえ... 13958727の値はどうでしたか?クエリはどこから実行されましたか? SSMSを開くと、プロファイルでトレースを開始し、SSMSでクエリを実行すると、値は同じ(または非常に近い) – Diego