Ton*_*gan 1 sql sql-server foreign-key-relationship relational-database
我希望做的是确保在数据库模式中维护外键关系,但出于性能原因,不强制执行约束或产生任何索引开销.它的目的纯粹是为了记录这种关系.这通常被称为"合成关系".
SQL Server中没有FK的索引开销,因为它没有为它们创建默认索引.
您可以通过禁用FK来实现关于约束检查所需的功能.
CREATE TABLE T1
(
C1 INT PRIMARY KEY
)
CREATE TABLE T2
(
C1 INT
)
/*Add FK without checking existing data*/
ALTER TABLE T2 WITH NOCHECK ADD CONSTRAINT FK_T2_C1 FOREIGN KEY(C1)
REFERENCES T1 (C1)
/*Prevent checking of future data*/
ALTER TABLE T2 NOCHECK CONSTRAINT FK_T2_C1
Run Code Online (Sandbox Code Playgroud)
除了确保数据完整性外,优化器还可以使用外键约束来改进查询计划(参考:第9点)
您是否已将FK识别为导致特定性能问题?
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |