SQL:“Where”或“AND”在大型数据库上表现更好?

时间:2015-03-16 21:53:18

标签: sql-server tsql join where

我有这个SQL查询。它在同一个表上运行,并创建一个包含三列的数据集。我担心的是我是否应该使用'WHERE'子句或'AND'。我有这种感觉,'AND'将比'WHERE'更有效,更快。请指教。 第一个是'WHERE',第二个没有它。

  1. SELECT DISTINCT t1.rpsrespondent AS id_num,t1.rpscontent AS PID,t2.RpsContent AS SeqNo

    从表t1 INNER JOIN表t2 ON t1.rpsrespondent = t2.rpsrespondent INNER JOIN表t3 ON t3.rpsrespondent = t1.rpsrespondent 在哪里t1.RpsQuestion ='PID'和t2.RpsQuestion ='VISITID' AND t3.rpsquestion ='INT99'和t3.rpscontent in('36','37')

  2. SELECT DISTINCT t1.rpsrespondent AS id_num,t1.rpscontent AS PID,t2.RpsContent AS SeqNo

    从表t1 INNER JOIN表t2 ON t1.rpsrespondent = t2.rpsrespondent AND t1.RpsQuestion ='PID'和t2.RpsQuestion ='VISITID' INNER JOIN表t3 ON t3.rpsrespondent = t1.rpsrespondent AND t3.rpsquestion ='INT99'和t3.rpscontent in('36','37')

1 个答案:

答案 0 :(得分:1)

使用INNER JOIN,如果在JOINWHERE子句中指定了谓词,则没有区别。查询在语义上是相同的,因此SQL Server优化器应生成相同(最佳)的执行计划。结果会得到相同的效果。