3

MS SQL Server を使用していると仮定します。

これらのクエリのうち、実行速度が最も速いのはどれですか? またその理由は?

エイリアスは一度だけテーブルに解決されると考えているので、最後を推測しますか?

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
4

1 に答える 1

8
  • 実行条件はまったく同じです
  • コンパイル時間の違いは測定できません
  • 3 番目の形式が最も読みやすい
  • 2 番目の形式はクエリを膨張させます
  • 最初の形式はクエリを肥大化させ、最も紛らわしい
于 2011-12-14T09:48:47.730 に答える