如MSDN所述,
http://msdn.microsoft.com/en-us/library/dd172122(v=vs.100).aspx
Sybase联接语法被认为是不推荐的。
即
SELECT [T2].[c3], [T1].[c3]
FROM [dbo].[T2] T2, [dbo].[T1] T1
WHERE [T2].[ID] = [T1].[ID]但是,对于SQL引擎是否能够优化这一点,信息还很粗略。
我可以想象上面的例子是可以的,但是在涉及10多个表的例子中会怎么样呢?
SQL查询引擎如何使用内部和外部联接优化这些查询?
发布于 2014-11-17 17:42:59
是的,Server可以优化它。我在我的SQL Server 2012实例上运行了这两个实例,它为两个查询提供了相同的执行计划:
SELECT [T2].[c3], [T1].[c3]
FROM [dbo].[T2] T2, [dbo].[T1] T1
WHERE [T2].[ID] = [T1].[ID]和
SELECT [T2].[c3], [T1].[c3]
FROM [dbo].[T2] T2
INNER JOIN [dbo].[T1] T1 ON [T2].[ID] = [T1].[ID]Server 2012实际上具有与2008年相同的查询优化器。Server 2014有了一个新的版本,但我怀疑在这种情况下不会有什么变化。
https://stackoverflow.com/questions/26975905
复制相似问题