環境: Windows 2008 R2、SQL Server 2008 SP1
問題: 9 つのテーブルを含むテーブル内部結合クエリは、実際の実行計画で「ステートメントの早期終了の理由: タイムアウト」を取得します。
間違ったメモリ許可が割り当てられています。
ソートは、RAM が十分にあるにもかかわらず、RAM ではなく tempdb で行われました。
tempdb で並べ替えが行われると、パフォーマンスが低下します。
考慮事項: 9 つのテーブルの 1 つからインデックスの 1 つを削除、作成、および削除すると、クエリは再び完全に最適化され、並べ替えは RAM で完全なパフォーマンスで行われます。ただし、クエリを少し変更するとすぐに、完全な最適化が再び失われます。
質問: 以前にその問題を見た人はいますか?
「タイムアウト」が発生する理由に関する詳細情報を取得する方法はありますか?
オプティマイザーは実際に何をしているのですか?
クエリオプティマイザーの問題を承認する方法がない場合は、tempdb 用の ramdisk を作成することを検討します。tempdb に ramdisk を使用するリスクは何ですか?
私がすでに試したこと: UPDATE STATS ON {ALL 9 Tables} WITH FULLSCAN
INDEX REBUILD は、上で行った DROP CREATE DROP アクションのように一時的に機能します。