我只想问一下哪种方式在性能方面更好。
我创建了一个具有
的存储过程选项A
1. DROP TABLE Statement
2. SELECT INTO Statement
3. CREATE CLUSTERED INDEX
注意:基本上存储过程会删除并重新创建表,然后在其上创建一个CLUSTERED INDEX。
我在想,如果这个与我创造的那个相比应该更好。
选项B
1. TRUNCATE TABLE Statement
2. INSERT INTO Statement
注意:使用我的OPTION B将不会创建CLUSTERED INDEX,因为该表已经有一个CLUSTERED INDEX。
感谢所有愿意帮助我的人。
答案 0 :(得分:0)
插入数据后,通常最好创建索引。
编辑:我似乎被拒绝了,所以我认为我应该对此进行一些限定。请注意"一般" - 这不会永远是真的,有几个人已经建议你只是尝试两个,看看自己哪个更快。但作为一般经验法则,这是事实。加载大量数据时的标准做法(如果您关注性能,我将其视为给定)是删除或禁用表上的索引,加载数据,然后重建索引。
对于为什么的类比,可以将其想象为为书籍编写索引。如果您以随机顺序编写本书,添加页面并随时更新索引,则必须经常移动索引中的条目以腾出空间。如果你等到写完整本书,那么你可以更有效地编写索引。