如何在大规模SQL表上创建新索引

时间:2011-07-01 10:04:51

标签: sql-server-2008

我在数据仓库星型模式中有一个庞大的(3,000,000,000行)事实表。该表在日期键上分区。

我想在其中一个外键上添加一个索引。这是为了让我能够识别和删除大尺寸表中的无子行。

如果我只发出一个CREATE INDEX语句,则需要永远。

对于这个问题,任何SQL大师都有任何奇特的技巧吗?

(SQL 2008)

--Simplified example...

CREATE TABLE FactRisk
(
  DateId int not null,
  TradeId int not null,
  Amount decimal not null 
)

--I want to create this index, but the straightforward way will take forever...

CREATE NONCLUSTERED INDEX IX_FactRisk_TradeId on FactRisk (TradeId)

1 个答案:

答案 0 :(得分:0)

我有一个计划......

  1. 将所有每日分区切换为表格
  2. 索引现在为空的事实表
  3. 索引单个分区
  4. 将所有分区切换回
  5. 初步调查意味着这将有效。我会报告回来......