在大型表的表上创建外键

时间:2015-05-13 08:01:52

标签: sql-server sql-server-2012

当我使用以下SQL Server命令添加外键

ALTER TABLE [TABLE_A]
WITH CHECK ADD CONSTRAINT [FK_TABLE_A_TABLE_B]
FOREIGN KEY ([COLUMN_A]) REFERENCES [TABLE_B] ([COLUMN_A])

在大尺寸的桌子上运行速度非常慢。是否有更快/更优化的方法在大尺寸的表上添加外键?

谢谢!

1 个答案:

答案 0 :(得分:2)

没有在线方式添加外键,但您可以做两件事来加快外键:

  1. 在线参与的列上创建两个最小索引。这减少了要读取的数据量,并启用了合并连接计划。您可以使用“Showplan XML”探查器事件来获取计划并对其进行验证。
  2. 将索引拉入内存:select count(*) from TABLE_A with (index(IX_TABLE_A_COLUMN_A))
  3. 这减少了构建(受信任的)外键所需的时间。