表数据库的索引

时间:2011-05-06 11:06:03

标签: sql sql-server indexing

我必须在SQL Server数据库表中插入10亿个代码。 我将使用BULK INSERT。 我的问题是:我应该在插入数据之前或之后创建索引吗?我需要最快的选择

3 个答案:

答案 0 :(得分:2)

10亿条记录到一张表中?哎哟。如果您正在处理该级别的数据量,并且您必须在论坛上提出此问题,那么您可能不在您的元素中。您应该在插入后创建索引,但确保在插入后在表上更新统计信息。如果统计数据不是最新的,索引将对您不利。

答案 1 :(得分:2)

当插入期间表上有索引时,服务器需要不断地重新排序/分页表以使索引保持最新。如果删除索引,只需添加行而不必担心,然后在重新创建索引时立即构建索引。

了解Bulk Insert

另请参阅:

bulk insert with or without index

答案 2 :(得分:1)

之前创建指数。 BULK INSERT负责优化索引。

编辑:只有输入数据按索引排序时才会出现这种情况。来自http://msdn.microsoft.com/en-us/library/ms188365.aspx

  

ORDER({column [ASC | DESC]} [   ,... n])

     

指定数据中的数据方式   文件已排序。批量导入   如果数据性能得到改善   被导入按照分类   表上的聚簇索引,如果   任何