Moh*_*ath 3 sql-server clustered-index fragmentation datetime sql-server-2014
我有一个名为 CDR 的大表(400 万条记录),用于在 VoIP 系统中存储来自 Cisco 路由器的 CDR(呼叫详细记录),该表不断增长,并且永远不会有无序插入的记录。我们也不更新或删除行。
由于我们的大多数查询都基于发起呼叫的时间,因此我在此列(DATETIME
数据类型)上创建了我的主要聚集索引。然而,在短暂的时间后,索引变得碎片化,仅仅一周后,它的碎片化程度就超过了 70%,因此我们需要重建它。我不明白为什么会发生这种情况,因为我们按顺序插入,并且不更新或删除行。
任何减少或消除碎片的建议将不胜感激。
我在装有 Windows Server 2012 的旧 Xenon 服务器上使用 SQL Server 2014 Enterprise 版本。
具有不断增加的键的表上仍然可能发生碎片,即使该键本身从不进行更新。
但是你说删除和更新很少或不存在。因此,要在一周内达到 70% 的碎片化,我认为原因必须是收缩数据库任务。看看为什么你不应该缩小你的数据文件