Sql-Server
Ola 的預設 IndexOptimizer 作業會更新我的統計資訊嗎?
我剛剛安裝了 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'
到過程呼叫中。