SQL Server Management Studio(これは既にMSSQLデータベースを意味します)から実行すると約10秒かかります。 Selectクエリは、いくつかの結合を持つビューで動作します。これは、未処理のSELECT文を実行するときに約10秒かかるためです。LINQタイムアウトでクエリ結果を選択
しかし、同等のLINQ文はタイムアウト例外で終わります。なぜこれが起こっており、それを修正するために何ができますか?
SQL Server Management Studio(これは既にMSSQLデータベースを意味します)から実行すると約10秒かかります。 Selectクエリは、いくつかの結合を持つビューで動作します。これは、未処理のSELECT文を実行するときに約10秒かかるためです。LINQタイムアウトでクエリ結果を選択
しかし、同等のLINQ文はタイムアウト例外で終わります。なぜこれが起こっており、それを修正するために何ができますか?
SSMSから呼び出されたときにストアされたproceudreの実行に約1秒かかりましたが、フロントエンドアプリケーションから呼び出されたときに同じプロシージャ(同じパラメータ)がタイムアウトしていました。私はSQLプロファイラを実行し、SMSSからsprocを実行したときに得たストアドプロシージャとは別の実行計画をフロントエンドから呼び出されたときに取得していたことがわかりました(これまでの理由はわかりません)
LINQを使用してクエリを実行するときに何らかの理由でクエリプロファイラが別のクエリプランを選択するかどうかをSQLプロファイラで確認してみてください。
ARITHABORTは、SSMSではデフォルトでオンになっており、SqlClient接続ではデフォルトでオフになっています(プロファイルプランナの標準オプションを変更してクエリプランを表示する必要があります)。これはあなたの問題を解決するかどうか
参照:
new SqlCommand("SET ARITHABORT ON", connection).ExecuteNonQuery();
あなたは両方のLINQとSQLクエリを投稿することができますか? – scmccart
どのくらいのデータが返されますか? –
@Albin:56レコードしか返されません。 –