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. クエリが実行された場合のクエリの結果を表示
- 3. 結果がクエリの制限よりも小さい場合、Datastoreクエリが時間がかかりすぎる
- 4. .batファイルはそれ自身で実行されますが、スケジュールされたタスクによって呼び出された場合は実行されません
- 5. Xより大きい時間に更新された場合
- 6. 値が1より大きい場合、これを実行します
- 7. SQLクエリの実行時間、SQL Serverの、ネストされたクエリ
- 8. DELETEクエリが長時間実行されています
- 9. SQLクエリの実行時間が大幅に増加します
- 10. サーバー時間がデータベース行のタイムスタンプよりも小さい場合
- 11. 大きなクエリがクエリを実行するまでの待機時間はどのくらいですか?
- 12. クエリは実行されていますが、何も表示されません
- 13. BigQueryでクエリが長時間実行された理由
- 14. MySQLのクエリ、結合、および自分自身、または私がいつも苦労する方法
- 15. データベース接続がクローズされた場合、またはデータベースサーバがすぐにクエリを実行していない場合はどうなりますか
- 16. SQLクエリではクエリdbよりも多くの時間がかかります
- 17. フィルタ実行時のクエリが正しくありません - クエリが実行されていません
- 18. 時間がそれよりも速い
- 19. phpmyadminでこのクエリを実行しようとしていますが、エラーが表示されます。
- 20. ネストされたクエリのSQLは、実行することができません
- 21. 行がそれ自身の状態を持つ成分である場合ここで
- 22. 私は、クエリを実行することができますどのようにすると時間=この
- 23. 固定されたコントロールは、それ自身でフォームを実行します
- 24. Java:接続が拒否されましたが、そうでない場合はnetstatと表示されます
- 25. 2つの同一のMSSqlクエリで実行時間が短縮され、その他が実行時間がかかる一方、両方のIDが異なる
- 26. MS Accessを使用したDelphi ADO - 特定のクエリを実行するとクエリ時間が短縮される
- 27. クエリはPL/SQLで実行されますが、私はSL/SQLでこのクエリを持っているASP.NET
- 28. クエリが実行される時間を測定するiPad
- 29. このクエリはサブクエリの合計よりもずっと長く実行されるのはなぜですか?
- 30. が、私はこれを行うことによって自分自身にテーブルを結合し、クロスを推薦人見てきた2つのクエリ
はい、プロファイラの所要時間はマイクロ秒です。正確な値は13958727で、約13秒です。ただし、同じクエリを正常に実行すると、約2〜3秒かかるだけです。 –
次の質問は、SSMSがクエリを最適化しているという事実に基づいて、クエリ実行時間の大きな違いを説明できるかどうかです。 –
いいえ... 13958727の値はどうでしたか?クエリはどこから実行されましたか? SSMSを開くと、プロファイルでトレースを開始し、SSMSでクエリを実行すると、値は同じ(または非常に近い) – Diego