删除并重新创建表...以避免索引问题?

0 sql t-sql indexing

我正在与DBA发生一个有趣的争论,他坚持认为不应该在T-SQL中使用DELETE命令,而是删除数据的正确方法是将您想保留的数据移动到临时表中,并删除并重新创建原始表.给出的理由是它应该防止索引碎片问题.

有没有人听说这是一种做法,任何人都可以提出为什么这可能是一个好主意?这是一个相当复杂的结构,我们通常会讨论用于无限期聚合数据的表的少量选择性删除(图中,一次少于1000行).

我无法想象这样做的理由,而不是简单地在适当的时候重新组织/重建索引,但如果我错过了什么,我会很乐意接受教育.谢谢!

gbn*_*gbn 6

垃圾,除非你删除了99%的行.

有一些方面,如事务日志效果,但删除表,键,索引重新创建要复杂得多,容易出错.

难道你没有索引那些会碎片整理的维护......?