Являются ли псевдонимы таблиц быстрее имен таблиц? - PullRequest
1 голос
/ 02 ноября 2010

Являются ли псевдонимы таблиц быстрее, чем просто использование имени таблицы?
Или это не имеет никакого значения?
И у вас есть хорошие советы по использованию псевдонимов таблиц? Или рекомендует / не рекомендации?

Спасибо
Bruno

Ответы [ 2 ]

5 голосов
/ 02 ноября 2010

Нет, это не так.

Механизм запросов даже не видит их (они появляются только в комментариях на плане).

При выполнении запроса механизм обрабатывает реальные физические объекты (таблицы, индексы и т. Д.) В соответствии с планом запроса.

Когда запрос говорит что-то вроде этого:

SELECT  *
FROM    mytable t

, оптимизатор создает план, подобный следующему:

|--Clustered Index Scan(OBJECT:([mydb].[dbo].[mytable].[pk_mytable] AS [t]))

и механизм запросов интерпретирует что-то вроде «найдите первую страницу индекса pk_mytable и просмотрите связанный список страниц, возвращая все найденные записи, пока не останется больше записей».

На этом этапе не важно, как именно вы создали псевдоним запроса: механизм работает с физическими объектами, такими как страницы, указатели и т. Д., А не с такими логическими вещами, как псевдонимы.

1 голос
/ 02 ноября 2010

Они не быстрее, но они делают код легче для чтения. И они необходимы для некоторых вещей, например, когда вы присоединяетесь к таблице более одного раза и когда вы используете производную таблицу.

Я считаю хорошей практикой всегда использовать псевдонимы и псевдонимы всех столбцов в выборке, чтобы сопровождающему не приходилось выяснять, к какой таблице в сложном запросе приходило каждое поле шесть месяцев спустя.

...