MSSQL连接多个字段的性能

时间:2018-12-20 08:02:45

标签: sql sql-server database

我知道使用多列联接将提高数据准确性,但是性能如何?

例如我下面的查询

SELECT tableOne.field FROM tableOne TO WITH(NOLOCK)
INNER JOIN tableTwo TW WITH(NOLOCK) on TW.fieldPK = TO.fieldPK
LEFT JOIN tableThree TT WITH(NOLOCK) TT.fieldFK = TO.fieldFK
   AND TT.fieldTwo = TW.SOMEFIELD

从上面的查询中,通过添加AND TT.fieldTwo = TW.SOMEFIELD可以提高准确性,但是即使没有它,我仍然可以通过使用主键来获取数据,所以我可以知道它的优缺点吗?在JOIN期间添加附加字段

1 个答案:

答案 0 :(得分:1)

如果使用执行计划(Management Studio中的ctrl + m)运行查询,您将看到不同联接的详细信息,这是一个很好的工具,可以快速找出您的查询受害最大的地方。

就您而言,我怀疑索引扫描的成本会有所不同。添加其他字段 可能会更改执行计划并提高查询效率,但也可能使情况变得更糟,如下面的屏幕截图所示。顶部的示例使用PK匹配,第二个示例使用PK +字段。

Indexing