使用JOINS的SQL Server SELECT性能

Mar*_*que 1 sql database sql-server performance

在SQL Server中,我想知道这样做是否有任何性能差异(A)......

SELECT a.field1, a.field2, a.field3, b.field1
FROM table1 a INNER JOIN table2 b ON a.IDfield = b.IDfield
Run Code Online (Sandbox Code Playgroud)

这个(B)......

SELECT a.field1, a.field2, a.field3, b.field1
FROM table1 a, table2 b
WHERE a.IDfield = b.IDfield
Run Code Online (Sandbox Code Playgroud)

嗯,这是一个简化的例子.我正在使用大约4个连接,我一直在这样做,就像在例子B中一样.这是一个不好的做法吗?我觉得写作更好,阅读效果更好,但如果性能方面的情况更糟,我就不会再这么做了.当然,我不能做左连接,右边连接这种方式,但在我正在进行的查询中并非如此.谢谢.

mar*_*c_s 6

没有区别 - 因为最终,两个查询都将是a.IDfield = b.IDfield标准表A和B之间的内部联接.

但查询(A)是表达意图的首选方式 - 在编写新查询时始终使用此样式!这也是ANSI SQL标准中描述的风格 - 所以你最好尽可能使用这种风格.