微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

使用sql Server 2005,升级到2012

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

TruncATE TABLE detination
INSERT INTO detination
SELECT *
FROM source

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

解决方法

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

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

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

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

原文地址:https://www.jb51.cc/mssql/78716.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐