请,需要帮助运行索引维护脚本。
我正在使用本教程的https://ola.hallengren.com/sql-server-index-and-statistics-maintenance.html
我下载了这个脚本,在我的数据库上运行它,然后使用我的数据库名执行其中一个示例。
EXECUTE dbo.IndexOptimize
@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,
@UpdateStatistics = 'ALL',
@OnlyModifiedStatistics = 'Y'它贯穿始终,我希望它会改变数据库索引碎片,但它似乎不会改变任何东西。我不确定我是否错过了什么。
谢谢。
发布于 2018-01-29 19:32:43
首先要注意的是,如果索引少于1000页,脚本将忽略这些索引。这是因为Microsoft(实际上是Paul Randall)的建议是不要重新排序/重建少于1000页的索引。这是因为,由于索引的大小,从维护中获得的好处“通常”可以忽略不计。
其次,如果您的索引少于8页,那么这些页将被存储在一个混合区中。这也会将你的碎片读数抛出水面。
要注意的一件事是,外部碎片(总碎片),这是我假设您正在谈论的,只有在从磁盘读取时才是真正的问题。如果您能够将所有数据放入内存中,那么您就不需要太担心碎片、更多的统计数据维护和一致性检查。我之所以提到一致性检查,是因为人们经常比CHECKDB更多地运行索引维护。
如果您真的想了解索引维护和性能,可以尝试Brent Ozar的this GroupBy session。
https://stackoverflow.com/questions/48499642
复制相似问题