数据库项目 - 通过关系改善绩效

时间:2011-06-15 15:24:51

标签: performance sql-server-2008 tsql relational-database foreign-key-relationship

我有两个表,我们称之为TableA和TableB。 TableA中的一条记录与TableB中的一条或多条相关。但TableB中的每条记录中也有一条特殊记录(例如ID最低),我希望能够快速访问该特殊记录。两个表中的数据都不会被删除 - 这是一种很少被清除的历史记录。在性能方面,这怎么样?
我想到了:
1)双向关系,但会影响插入性能 2)设计下一个表,主键为FK_TableA(对于TableA记录,一个是“特殊”)和第二列FK_TableB然后创建视图
3)设计下一个表,主键为FK_TableA,FK_TableB,使FK_TableA唯一,然后创建视图

我愿意接受其他所有想法:)

1 个答案:

答案 0 :(得分:1)

4)我会考虑indexed view来隐藏JOIN和行限制

这与您的选项2和3类似,但数据库引擎会为您维护它。使用新表,您将损害数据完整性或必须通过触发器管理数据