2014-11-17 36 views
0

正如在MSDN概述,可以在SQL Server(2008 R2)優化的Sybase加入語法

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查詢引擎如何使用內部和外部連接優化這些查詢?

+1

這相當於一個「內部連接」,SQL Server將進行優化。這是使用這種語法的真正糟糕的原因。簡單的規則:不要在'from'子句中使用逗號。 –

+0

唯一被棄用的語法是專有的外部連接語法。 –

回答

0

是的,SQL 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] 

SQL Server 2012的基本具有相同的查詢優化器在2008年SQL服務器2014有一個新的,但我懷疑這不會在這種情況下有所作爲。