我遇到了一个有趣的争论,那就是DBA坚持DELETE命令不应该在T-SQL中使用,相反,删除数据的正确方法是将您希望保留的数据移动到temp表,并删除并重新创建原始表。给出的理由是它应该防止索引碎片问题。删除并重新创建表格以避免索引问题?
有没有人听说过这是一种实践,任何人都可以提出理由,为什么这可能是一个好主意?这是一个相当复杂的结构,我们一般都在讨论从旨在无限期地聚合数据的表中少量选择性删除(图,每次少于1000行)。
我无法想象这样做的理由,而不是简单地在适当的地方重新组织/重建索引,但如果我错过了某些东西,我会很乐意接受教育。谢谢!
不确定T-SQL,但在MySQL中,这是一个坏主意,就好像你在一个事务中一样,当你运行DDL命令时它会自动提交事务 – Greg 2009-11-24 19:02:26
如果我每次只有一个DBA说镍有些东西完全疯了 – 2009-11-24 19:13:02