在SQL Server中索引80亿行

时间:2017-11-03 16:04:07

标签: sql sql-server

我的SQL Server表中有80亿条记录。我需要在几列上创建索引。我相信这将花费大量时间。

有人可以告诉我更快更好的方法吗?

2 个答案:

答案 0 :(得分:3)

我能想到的一个选项是SORT_IN_TEMPDB = ON.,可以帮助您更快地创建索引

  

用于构建索引的中间排序结果存储在tempdb中。如果tempdb位于与用户数据库不同的磁盘集上,则这可能会减少创建索引所需的时间。但是,这会增加索引构建期间使用的磁盘空间量。

您也可以尝试不查询表格,以便在创建索引期间不会出现任何锁定,阻止,或者根据您的sqlserver版本使用ONLINE = { ON | OFF }

此外,如果您的数据库采用简单恢复模式,则此操作记录最少,从而减少了IO ..

答案 1 :(得分:0)

创建索引真的不需要那么长时间:

CREATE INDEX index_name
ON table_name (column1, column2, ...)