2010-11-25 10 views
1

同じクエリを実行してより大きなデータセットを返すよりも小さなデータセットを返すクエリを実行すると、次のエラーが発生するランタイムが高くなることがあります)。"高速"クエリでSQLタイムアウトエラーが発生する

タイムアウトが切れています。操作が完了する前にタイムアウト時間が経過したか、サーバーが応答していません。

私はsprocに一連のオプションを渡しています。オプションのセットに、より多くのテーブル結合およびより大きな結果セットをトリガするオプションが含まれていない場合、前述の例外が発生します。私は、接続文字列のConnection Timeoutプロパティを増やしてこれを早期に解決したと考えましたが、そうではありません。

誰でもこのトラブルシューティングの方法を知っていますか?私はSQLプロファイラを使い、より小さい入力と大きい入力の両方を使用してクエリを実行しました。結果は期待通りです。入力が少なくなると、クエリーは大幅に高速に実行されますが(クライアントではタイムアウトします)、クエリーが大きくなると実行速度は遅くなりますが、結果はクライアントに返されます。

答えて

0

だけでパフォーマンスの観点のために、死んだロックの可能性を最小限にするために、すべてのクエリで(NOLOCK)でを追加

+0

(デッドロックの可能性があると仮定しています)私はそのディレクティブかなり確信していますすでにそこにある。クライアントでタイムアウトするクエリは、タイムアウトしないクエリよりもSQL Management Studioで高速に実行されるため、変です。 – illvm

関連する問題