Как сказанный KPWINC, "Это действительно зависит".
Существует еще несколько объектов, которые влияют на ответ на Ваш вопрос, что общий ответ не может быть соответствующим.
Microsoft MSDN имеет записи для sp_updatestats (http://msdn.microsoft.com/en-us/library/aa260337 (SQL.80) .aspx) и "UPDATE STATISTICS" (http://msdn.microsoft.com/en-us/library/aa260645 (SQL.80) .aspx)
Отвечать на Ваши последние вопросы сначала:
Необходимо перечитать запись SQLServerPedia. Конкретно:
Ваш индекс восстанавливает, автоматически обновит статистику для индекса (с 100%-м объемом выборки, который обычно лучше затем, с чем Вы заканчиваете при использовании sp_updatestats). После индекса восстанавливают, завершено, можно использовать sp_updatestats для обновления других статистических данных, которые требуют внимания (2005 +).
При рассмотрении UPDATE STATISTICS (2000) в документации говорится что следующее для выборки:
Обратите внимание, что поведение по умолчанию состоит в том, чтобы выполнить демонстрационное сканирование на целевой таблице или индексном представлении. SQL Server автоматически вычисляет необходимый объем выборки.
Kimberly Tripp соединила несколько записей в блоге на статистике, индексах и планах сопровождения базы данных (http://www.sqlskills.com/BLOGS/KIMBERLY/category/Statistics.aspx). В то время как информация может или не может быть непосредственно применимой Вами, руководство каждой записью в блоге должно быть, и сайты, на которые ссылаются, вероятно, будут полезны.
Это действительно зависит...
Сколько баз данных?
Насколько большой база (базы) данных?
Сколько действия?
sp_updatestats (по умолчанию) обновляет статистику с частотой дискретизации по умолчанию. Можно попытаться использовать передискретизировать опцию, но это будет только работать, если автоматическое обновление не произошло, с тех пор в прошлый раз, когда Вы обновили статистику (автоматическое обновление также использует частоту дискретизации по умолчанию).
При восстановлении индекса статистические данные обновляются с полным сканированием, и большинство людей видит хорошую производительность после того, как индекс восстанавливает.
Только редкие люди ситуаций выключают автоматические функции статистики. Я рекомендовал бы оставить его НА.
Имейте задание, которое работает в соответствующем интервале (который зависит от Ваших шаблонов модификации данных для каждой таблицы), и делает ручное обновление статистики с помощью полного сканирования или некоторой другой высокой частоты дискретизации.
Обычно я шел бы следующим образом:
Если это - большая база данных - Резервное копирование журнала транзакций каждый час.
- Дифференциальное резервное копирование ежедневно. - Ежедневная дефрагментация. - Ежедневная статистика обновления.
- Переиндекс один раз в неделю. - Полное резервное копирование один раз в неделю.
Много зависит от базы данных и транзакций.
Еще одна вещь принять во внимание состоит в том, что автоматически вычисленная частота дискретизации может вызвать сгенерированную гистограмму, и вектор плотности к не правильно составляют любой скос данных, который Вы могли бы иметь, против которого sproc происходит с работой.
Вы знаете различие в планах запросов между sproc после выбранного обновления статистики и fullscan обновлением статистики?
Еще одна вещь - остерегаться планов технического обслуживания, которые восстанавливают индексы и затем обновляют те те же статистические данные, которые были обновлены как побочный эффект восстанавливания - можно закончить с ХУДШЕЙ статистикой затем, если Вы только что оставили rebuild-updated-stats в покое.
Спасибо