非常に単純なストアドプロシージャウィルタイムアウト
-
19-09-2019 - |
質問
私は、我々のアプリケーション全体の時間の99%を働き、この1つのストアドプロシージャで問題を抱えているが、アプリケーションの特定の部分から呼び出されたときにタイムアウトします。
テーブルは3列があり、約300のレコードが含まれています。ストアドプロシージャは、1つのレコードだけを戻すと、このようになります。
この "カラム= @parameter表から選択します*" SPは管理スタジオで実行されると、
それは取る:00秒。
ストアドプロシージャは、我々のアプリケーションで多く使用さが、唯一の私たちのプログラムの一つの特定の部分でタイムアウトに思われます。私はこのような単純なSPがタイムアウトする理由何らかの理由を考えることはできません。任意のアイデア?
これは、vb.netのデスクトップアプリケーションとSQL Server 2005を使用しています。
解決
あなたはそれを読み取ることができないので、すでにテーブルの上にロックを保持していくつかのコードを持っています。
他のヒント
してみてください。
SELECT * FROM Table WITH (NOLOCK) WHERE Column = @parameter
私たちは、アプリケーション(〜30秒)でタイミングを締め出すが、SSMSで問題なく動作しますいくつかのストアドプロシージャを持っていた、非常によく似た問題を抱えていました。
我々が使用される短期的な解決策は、問題を一時的に固定された再実行ストアドプロシージャすることでした。これはまた、あなたのために一時的に問題を修正した場合は、問題を盗聴パラメータを調査する必要があります。
//dannykendrick.blogspot:futher情報については、のhttp参照してください。 co.nz/2012/08/sql-parameter-sniffing.htmlする
あなたはパフォーマンスメトリックを取得する必要があります。 SPは、その時間または何か他のもので低速であることを確認するために、SQLプロファイラを使用してください。それはその時点で遅いのSQLである場合 - 待つようにクエリを強制することができるロックのようなものを検討してください。私たちは知ることができますし、私たちはその時点でより具体的な情報を提供することができるかもしれません。
それはないSPが、VBのコード、のようなまともなプロファイルを言うならレッドゲートの蟻のか、 JetBrainsのドットトレースのに役立つことがあります。