加入表时的性能差异

时间:2012-07-26 11:24:02

标签: sql sql-server-2008 stored-procedures

我想加入AccountSales表。

Account表的主键:id,YearCode,AgentId

哪个查询运行得更快

查询#1:

SELECT * 
FROM account A
     JOIN sales s on a.id = s.id
                     AND a.yearcode = s.yearcode
                     AND a.agentid = s.agentid
WHERE a.yearcode = 1
      AND a.agentid=56
      AND a.id=976

查询#2:

SELECT *
FROM Account A
     JOIN sales s on a.id=s.id
WHERE s.yearcode=1
      AND s.agentid=56
      AND a.yearcode=1
      AND a.agentid=56
      AND a.id=976

查询#3:

SELECT *
FROM account a, sales s
WHERE a.id=s.id
      AND a.yearcode=s.yearcode
      AND a.agentid=s.agentid
      AND a.agentid=56
      AND a.yearcode=1
      AND a.id=976

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT * 
FROM account A
JOIN sales s on a.id = s.id AND a.yearcode = s.yearcode AND a.agentid = s.agentid
WHERE a.id =976 AND a.yearcode = 1 AND a.agentid=56