SQL Alias vs dbo.prefix - 查询性能

jim*_*asp 3 sql sql-server alias join dbo

假设您正在使用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
Run Code Online (Sandbox Code Playgroud)

gbn*_*gbn 8

  • 它们在执行方面完全相同
  • 编译时间差异无法衡量
  • 第三种形式是最具可读性的
  • 第二个表单膨胀了查询
  • 第一个表单膨胀查询,是最令人困惑的

  • @Dems:是的,如果从FROM子句中省略了schema,那么就会有区别.在选择或其他地方它没有什么不同 (2认同)