加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 06:32:59 所属栏目:MsSql教程 来源:网络整理
导读:使用SQL Server 2005,升级到2012 如果我有ETL,则执行以下操作(简化) TRUNCATE TABLE detinationINSERT INTO detinationSELECT *FROM source 这是否清除索引并使用插入重建它?我有碎片吗? 解决方法 假设它不会截断索引.这意味着数据库在物理上不一致.所以不
使用SQL Server 2005,升级到2012

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

TRUNCATE TABLE detination
INSERT INTO detination
SELECT *
FROM source

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

解决方法

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读