IQueryable
を構成し、その上で実行ToPagedList()
し、結果を MVC ビューに渡すEntity-to-SQL コードがあります。
ToPagedList()
SQL クエリの実行がタイムアウトして失敗します。生成された SQL クエリを ( を使用してIQueryable.ToString()
) 抽出し、サーバーで実行しました。1 秒もかからずに実行され、出力は空です (これは正しいです)。
したがってToPagedList()
、30分実行してタイムアウトする空の結果を生成するクエリを実行し、同じサーバーで1秒未満で実行される基礎となるSQLを持っています。
SQL クエリの出力が空であるため、EF でのフィルタリング、検索、またはその他の遅延のせいにすることはできません。
空の出力を生成する高速な SQL クエリが、内部から非常に遅く実行される原因は何ToPagedList()
ですか?
UPD
この問題は自然に解決したようで、コードを実行しているマシンと SQL Server マシンの間の一時的な問題だったようです。