0

MS SQL で時折ハングアップして実行されない複雑な SQL クエリがあるという問題が発生しました。ただし、クエリに関係するテーブルで update statistics を実行すると、クエリは正常に実行されます。

原因に関するアイデアや指針はありますか?

ありがとう!

4

1 に答える 1

0

SQL Server は、統計情報を使用してデータをフィルター処理し、データベース テーブルへのアクセスを減らす最適な順序を決定する「実行計画」を作成します。

この実行計画はデータベース キャッシュに保存され、データベースがオンラインである限り再利用されます。統計は再構築されず、クエリは変更されません。

インデックスを更新すると、統計も更新されます。

その結果、クエリの保存された実行計画は最適ではなくなり、使用されなくなります。

インデックスを再構築する前に、SQL Server もテーブルの未使用のロックとトランザクションを閉じると思います。これは文書化されていない機能です。

于 2012-11-22T21:54:27.013 に答える