お客様の1人が新しいサーバーにアップグレードしました。
特定のストアドプロシージャを初めて実行すると、実行に3分以上かかります。後続の実行は1秒未満です。
これにより、最初の3分間は主に実行計画の計算に費やされると思います。その後の実行では、キャッシュされたプランを使用して即座に実行されます。
テストデータベースでは、同じ手順の計画を計算するのに約5秒かかります。
プラン自体にはひどいものは何もありません。ただし、プランはクエリの実行にかかる時間を示しており、計算自体は行わないため、関連性があるとは思いません。
サーバーは24ギガバイトのメモリを備えた16コアです。CPUやメモリの負荷が大きくなることはありません。
特定のデータベースでのみこのような遅い計算を引き起こしているのは何ですか?
問題の原因を特定するためにどのような手順を実行できますか?
編集する
したがって、サーバーにアクセスして、SET SHOWPLAN_XML ONを指定してクエリを実行できました。
クエリのCompileTimeがクエリ実行時間の99%を占めていることを確認できます。StatementOptmEarlyAbortReasonがある「タイムアウト」理由はMemoryLimitExceededされ、そのデータベースのコピーを持つ我々のテストデータベースに、。