1

さまざまなパラメーターを使用して複雑なクエリを継続的に実行するこの db アプリケーションがあります。これは、4 ~ 6 個のテーブルを結合する 4 つの通常のストアド プロシージャを呼び出すコンパイル済みストアド プロシージャ (C#) であり、呼び出し間で結果をマージする C# コードです。

これは、データベースが復元されるまでの 6 か月間、問題なく (高速に) 実行されています。その後、パフォーマンスはほぼ瞬時から 20 秒以上に変化しました。グーグルで検索すると、テーブルで統計の更新を実行する必要があることが明らかになりました。はい、それは機能し、インスタントクエリが再び実行されました。

しかし、問題は1か月後に再発しました。わかりました。もう一度「統計を更新」してください。再び速く。それから戻ってくるのに1週間かかりました。クエリが突然遅くなります。その後、問題はますます速く再発し続け、この時点で統計を更新してもまったく役に立ちません。

この種の問題をどのように分析しますか?パフォーマンスに関して、コンパイル済みストアド プロシージャとクエリ プランについて知っておくべきことはありますか?

4

4 に答える 4