2011-12-14 4 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
  • Они будут точно то же самое с точки зрения выполнения
  • компиляция Разница во времени не будет измеримой
  • 3-я форма является наиболее читаемым
  • 2-я форма bloats запрос
  • 1-й вид раздувает запрос и является самым запутанным
+1

Есть ли случай, если присутствует имя схемы, имеет предельную разницу? Но что это касается только ссылки на таблицу, а не ссылки на поле? (Возможно, из-за проверки того, что определения таблиц (ов) совпадают с той схемой, из которой она была первоначально скомпилирована? Хотя это предположение ...) – MatBailie

+2

@Dems: да, если схема не указана в предложении FROM, тогда существует разница. В выборе или где и т.д. он не отличается от – gbn

+0

Любые комментарии анонимного голосования? – gbn

Смежные вопросы