我是索引的新手,并了解了索引的基础知识。我可以在相应表的索引部分中找到主键约束的默认聚集索引,但是在创建外键约束后我找不到任何。
现在我有一个要求,应该实施索引以提高性能。我已经阅读了关于索引外键以提高JOIN result的性能的内容。
我是否需要将外键列添加到其他非聚集索引或外键具有默认索引?
如果我的SQL 表结构如下,并且我有一个使用t1_col3 的WHERE 子句的JOIN 查询,我如何有效地实现索引
table1 table2
------ ------
t1_col1(pk) t2_col1(pk)
t1_col2 t2_col2
t1_col3 t2_col3
t1_col4 t2_col4
t2_col1(FK)
Run Code Online (Sandbox Code Playgroud)
gbn*_*gbn 14
默认情况下,外键没有索引。你必须创造一个。
在这种情况下,我会建议其中任何一个。这取决于两列的相对选择性
CREATE INDEX IX_table2fk ON
table1 (t2_col1, t1_col3)
INCLUDE (any columns needed for the query)
Run Code Online (Sandbox Code Playgroud)
或者
CREATE INDEX IX_table2fk ON
table1 (t1_col3, t2_col1)
INCLUDE (any columns needed for the query)
Run Code Online (Sandbox Code Playgroud)
INCLUDE 将使索引覆盖以避免键/书签查找
| 归档时间: |
|
| 查看次数: |
16032 次 |
| 最近记录: |