3

假设您使用的是 MS SQL Server:

这些查询中的哪一个将执行得最快,为什么?

我猜是最后一个,因为我认为 Aliases 只解析到他们的表一次?

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
  • 它们在执行方面将完全相同
  • 编译时间差异将无法测量
  • 第三种形式是最易读的
  • 第二种形式使查询膨胀
  • 第一种形式使查询膨胀并且是最令人困惑的
于 2011-12-14T09:48:47.730 回答