2011-12-14 45 views
3

假設您使用的是MS SQL Server:SQL別名與dbo.prefix - 查詢性能

哪個查詢會執行最快的,爲什麼?

我要猜測最後一個,因爲我在考慮別名只解決了他們的表一次?

SELECT Account.AccountName, 
     AccountStatus.AccountState 
FROM 
     dbo.Account 
     INNER JOIN dbo.AccountStatus ON Account.AccountStatusID = AccountStatus.AccountStatusID 
GO 

SELECT dbo.Account.AccountName, 
     dbo.AccountStatus.AccountState 
FROM 
     dbo.Account 
     INNER JOIN dbo.AccountStatus ON dbo.Account.AccountStatusID = dbo.AccountStatus.AccountStatusID 
GO 

SELECT A.AccountName, 
     AST.AccountState 
FROM 
     dbo.Account AS A 
     INNER JOIN dbo.AccountStatus AS AST ON A.AccountStatusID = AST.AccountStatusID 
GO 

回答

8
  • 他們將正好同樣在執行方面
  • 的編譯時間差不會是衡量
  • 第三形式是最可讀的
  • 第2形式臃腫的查詢
  • 第一種形式膨脹查詢,是最容易混淆的
+1

是否存在模式名稱是否存在邊際差異?但是,這隻與表引用而不是字段引用有關? (可能是由於檢查表的定義是否與最初編譯的模式相同?儘管這是一個猜測......) – MatBailie 2011-12-14 09:56:03