Sql-Server

Ola 的預設 IndexOptimizer 作業會更新我的統計資訊嗎?

  • March 28, 2018

我剛剛安裝了 Ola Hallengren 的MaintenanceSolution.sql維護腳本。查看作業生成的日誌輸出後IndexOptimize - USER_DATABASES,我擔心它不會更新統計資訊。我擔心的原因是我@UpdateStatistics = NULL在日誌輸出中列出的參數中看到:

Date and time: 2013-07-16 13:58:24
Server: XXXXX
Version: 10.0.5512.0
Edition: Standard Edition (64-bit)
Procedure: [PROD-PH].[dbo].[IndexOptimize]
Parameters: @Databases = 'USER_DATABASES', @FragmentationLow = NULL, @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE', @FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE', @FragmentationLevel1 = 5, @FragmentationLevel2 = 30, @PageCountLevel = 1000, @SortInTempdb = 'N', @MaxDOP = NULL, @FillFactor = NULL, @PadIndex = NULL, @LOBCompaction = 'Y', @UpdateStatistics = NULL, @OnlyModifiedStatistics = 'N', @StatisticsSample = NULL, @StatisticsResample = 'N', @PartitionLevel = 'N', @MSShippedObjects = 'N', @Indexes = NULL, @TimeLimit = NULL, @Delay = NULL, @LockTimeout = NULL, @LogToTable = 'Y', @Execute = 'Y'
Source: http://ola.hallengren.com

這背後的動機是有一個查詢在會計期間(每四周)執行一次,用於該期間的日期範圍。如果我不手動執行,查詢需要 20 多分鐘sp_updatestats。如果統計資訊是最新的,則查詢需要不到 5*秒的時間。*有問題的表有約 160 萬行,但每週僅增長約 2 萬行。因此,在給定的四個星期內,它遠未達到 20% 的自動門檻值。其他幾個表也有類似的增長模式。

我的計劃是安排這項工作每週執行一次。它會根據需要更新統計資訊嗎?

預設情況下,該腳本不執行統計維護。可以在此處找到腳本參數的文件。

Value   Description
================================
ALL     Update index and column statistics.
INDEX   Update index statistics.
COLUMNS Update column statistics.
NULL    Do not perform statistics maintenance. This is the default.

因此,如果您讓主腳本為您創建維護作業,並且您想要更新索引和列統計資訊,那麼您需要編輯 IndexOptimize 作業並添加, @UpdateStatistics='ALL'到過程呼叫中。

引用自:https://dba.stackexchange.com/questions/46473