sql-server – 如何使用TRUNCATE TABLE影响索引

前端之家收集整理的这篇文章主要介绍了sql-server – 如何使用TRUNCATE TABLE影响索引前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用sql Server 2005,升级到2012

如果我有ETL,则执行以下操作(简化)

TRUNCATE TABLE detination
INSERT INTO detination
SELECT *
FROM source

这是否清除索引并使用插入重建它?我有碎片吗?

解决方法

假设它不会截断索引.这意味着数据库在物理上不一致.所以不可能这样.

截断逻辑删除所有行,并为所有分区物理创建新的b树.由于树木是新鲜的,因此不存在碎片.

实际上我不确定树是否分配了0或1页.但没关系.我相信临时表有一个与临时表缓存有关的特殊情况.也没关系.

您问题的插入与任何其他插入的工作方式相同.它不受交叉语句通信方式中的前一个截断的影响.它是否导致碎片取决于您的具体情况,恕我直言,最好放在一个新问题.

猜你在找的MsSQL相关文章