Как часто вы обновляете статистику в SQL Server 2000? - PullRequest
4 голосов
/ 25 сентября 2008

Мне интересно, помогло ли вам обновление статистики раньше и как вы узнали, как обновить их?

Ответы [ 4 ]

4 голосов
/ 25 сентября 2008
exec sp_updatestats

Да, обновление статистики может быть очень полезным, если вы обнаружите, что ваши запросы работают не так, как должны. Об этом свидетельствует проверка плана запроса и уведомление, когда, например, вместо поиска индекса выполняется сканирование таблицы или индекса. Все это предполагает, что вы правильно настроили свои индексы.

Существует также команда UPDATE STATISTICS , но я лично никогда не использовал ее.

3 голосов
/ 25 сентября 2008

Обычно обновление статистики добавляется в план обслуживания (как в плане обслуживания, определенном Enterprise Manager). Таким образом, это происходит по расписанию - ежедневно, еженедельно, что угодно.

SQL Server 2000 использует статистику для принятия правильных решений о выполнении запросов, поэтому они определенно помогают.

Хорошей идеей будет перестроить ваши индексы одновременно (DBCC DBREINDEX и DBCC INDEXDEFRAG).

2 голосов
/ 25 сентября 2008

Если вы перестраиваете индексы, то статистика для этих индексов автоматически перестраивается. Если ваши временные рамки позволяют, тогда запуск UPDATE STATISTICS части плана обслуживания является хорошей идеей, как часто, так и по ночам (если ваши индексы перестраиваются реже).

SQL Server. Чтобы определить, является ли устаревшая статистика причиной плохого выполнения запроса, включите «Запрос-> Показать план предполагаемого выполнения» (CTRL-L) в Management Studio и выполните запрос. Откройте другое окно, вставьте в тот же запрос и включите «Запрос-> Показать план ActualExecution» (CTRL-M) в Management Studio и повторите запрос. Если планы выполнения отличаются, то статистика, скорее всего, устарела.

1 голос
/ 25 сентября 2008

Обновление статистики становится необходимым после следующих событий:
- Записи вставляются в вашу таблицу
- Записи удаляются из вашей таблицы
- Записи обновляются в вашей таблице

Если у вас есть большая база данных с миллионами записей, в которых происходит много записей в день, вам, вероятно, следует определить непиковое время для планирования обновлений индекса.

Кроме того, вам необходимо учитывать ваш тип трафика. Если у вас много (миллионы) записей в таблицах с множеством зависимостей от внешнего ключа, и у вас большая доля записей в чтениях, возможно, вы захотите отключить автоматический пересчет статистики (ПРИМЕЧАНИЕ. Эта функция будет удалена в следующей версии SQL Server, но для SQL Server 2000 вы должны быть в порядке). Это говорит движку не пересчитывать статистику для каждого INSERT, DELETE или UPDATE и делает эти действия намного более производительными.

Индексы не смешны. Они являются сердцем и душой производительной базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...