MS SQL で時折ハングアップして実行されない複雑な SQL クエリがあるという問題が発生しました。ただし、クエリに関係するテーブルで update statistics を実行すると、クエリは正常に実行されます。
原因に関するアイデアや指針はありますか?
ありがとう!
MS SQL で時折ハングアップして実行されない複雑な SQL クエリがあるという問題が発生しました。ただし、クエリに関係するテーブルで update statistics を実行すると、クエリは正常に実行されます。
原因に関するアイデアや指針はありますか?
ありがとう!
SQL Server は、統計情報を使用してデータをフィルター処理し、データベース テーブルへのアクセスを減らす最適な順序を決定する「実行計画」を作成します。
この実行計画はデータベース キャッシュに保存され、データベースがオンラインである限り再利用されます。統計は再構築されず、クエリは変更されません。
インデックスを更新すると、統計も更新されます。
その結果、クエリの保存された実行計画は最適ではなくなり、使用されなくなります。
インデックスを再構築する前に、SQL Server もテーブルの未使用のロックとトランザクションを閉じると思います。これは文書化されていない機能です。