我有一个包含4000万行(并且正在增长)的表,其中包含一个标识主键聚簇索引和一个非聚集索引。
我经常需要删除旧的或过时的信息。
因为这是一个经常采取的行动,我是否应该关注碎片并计划对索引进行一些维护以保持性能?
应该是什么,或者我应该如何评估两个索引的最佳操作:
REBUILD还是REORGANIZE?
答案 0 :(得分:2)
您需要问的问题是索引碎片是否实际上导致您遇到任何问题。
我认为拥有某种索引维护脚本是个好主意。如果您使用Ola Hallegren的脚本,那么您可以设置重建/重组的阈值(例如,重组的碎片超过50%,重建时超过80%),这可以在几小时内连续运行。您还可以设置阈值,以便它只考虑超过特定大小的索引,这样您就不会在微小索引上进行不必要的重建。
这是指所述脚本的链接;
https://ola.hallengren.com/sql-server-index-and-statistics-maintenance.html
答案 1 :(得分:1)
使用此行数和这些操作是的,您应该关注碎片,因为性能可能会降低。根据我读过的几篇文章,我实现了像这样的索引碎片整理:
您可以在此处获取有关索引碎片的更多详细信息:http://blog.sqlauthority.com/2010/01/12/sql-server-fragmentation-detect-fragmentation-and-eliminate-fragmentation/ 在这里http://www.schneider-electric.com/en/faqs/FA234246/
您可以分析索引碎片的演变,然后每晚或每周一次(或其他频率)选择碎片整理