我计划使用Ola的IndexOptimize脚本来代替SharePoint 2013的前提碎片整理定时器作业。
有人用它来做这个吗?你用什么对词?怎么用?下面是我为OOOTB定时器任务通常处理的数据库设置的内容:
EXEC sp_msforeachdb
'if exists(select 1 from [?].sys.objects where name=''proc_DefragmentIndices'')
EXECUTE dbo.IndexOptimize
@Databases = ''?'',
@FragmentationLow = NULL,
@FragmentationMedium = ''INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE'',
@FragmentationHigh = ''INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE'',
@FragmentationLevel1 = 5,
@FragmentationLevel2 = 30
'发布于 2017-10-10 14:36:21
我只想更新统计数据。
我认为Jeff曾经说过:“重建索引只是更新统计数据的一种非常昂贵的方法”。
此外,运行更新统计信息可以同时获得索引和列的统计更新。重建索引只做索引本身,所以列的统计数据是陈旧的,除非它们达到"20%数据更改+ 500条记录“的标准来触发自动更新。在大桌子上,这可能是一段时间,而且不够频繁。
SQL2014和较低的默认样本大小不会并行,只有FULLSCAN才会并行。
SQL2016 -默认的样本大小也可以并行(并行统计更新)
我通常使用的语法(在本例中我们使用FULLSCAN StatisticsSample=100):
EXECUTE [dbo].[IndexOptimize]
@Databases = 'USER_DATABASES',
@FragmentationLow = NULL,
@FragmentationMedium = NULL,
@FragmentationHigh = NULL,
@UpdateStatistics = 'ALL',
@StatisticsSample=100这样,您就可以获得更新的统计信息(优化器将为此感谢您),而无需对物理索引结构维护进行所有I/O震荡和日志记录。
关于TF2371的附加读取,它允许以较低的百分比触发大型表上的统计更新。如果您使用的是SQL 2016,默认情况下将启用此功能。
https://dba.stackexchange.com/questions/188109
复制相似问题