use*_*827 7 sql-server fragmentation ola-hallengren index-maintenance
我有一个禁用了页面级锁定的索引,现在我有该索引的索引碎片问题。
我知道我将无法Reorganize建立索引,但我相信我能够建立rebuild索引。
现在我认为重建也不起作用。我使用的默认填充因子为 100。我的数据库很大,所以我不希望通过将填充因子设置为 80% 或更少来增加表/数据库的大小。不工作是指在前一天晚上运行 Ola 的脚本后,平均碎片保持不变。
关于为什么禁用页面级锁定的一点背景。
我deadlocks在那个特定表中的这个索引上得到了很多交易。这张表是一种insert, update and delete每时每刻都在发生的事实表。并且与foreign key其他几个表有一些关系CASCADE deletes。所以,我遇到了很多锁/死锁,在禁用页面级锁之后,我能够摆脱所有这些死锁。
我开始使用 Ola Hallengren 的脚本,Index maintenance并对所有索引重组不起作用的索引应用了索引重建。但我注意到索引重建也不起作用。
现在,我看到索引的 AvgPageFragmentaiton 为 95.9413,页面计数为 1196826,这并不好。
附加信息:
我正在使用 Ola Hall 的脚本,如下所示。
EXECUTE dbo.IndexOptimize
@Databases = 'DB_NAME',
@FragmentationLow = NULL,
@FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE',
@FragmentationHigh = ''INDEX_REORGANIZE,INDEX_REBUILD_ONLINE'',
@FragmentationLevel1 = 5,
@FragmentationLevel2 = 30,
@SortInTempdb = 'Y',
@MaxDOP = 0,
@WaitAtLowPriorityMaxDuration = 0,
@WaitAtLowPriorityAbortAfterWait= 'NONE',
@Indexes = 'DB_NAME.[dbo].TB1,DB_NAME.[dbo].TB2'
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果为该索引禁用了页面级锁,如何减少索引中的碎片?