pok*_*oke 4 sql-server-2008 sql-server statistics ola-hallengren
我刚刚安装了 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
Run Code Online (Sandbox Code Playgroud)
这背后的动机是有一个查询在一个会计期间(每四个星期)针对该期间的日期范围运行一次。如果我不手动运行,查询需要 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.
Run Code Online (Sandbox Code Playgroud)
因此,如果您让主脚本为您创建维护作业,并且您想要更新索引和列统计信息,那么您需要编辑 IndexOptimize 作业并将其添加, @UpdateStatistics='ALL'
到过程调用中。
归档时间: |
|
查看次数: |
2047 次 |
最近记录: |