Как псевдонимы таблиц влияют на производительность? - PullRequest
22 голосов
/ 03 декабря 2011

Читая о настройке запросов SQL, я где-то читал: «Всегда используйте псевдоним таблицы и добавляйте псевдонимы всех имен столбцов, когда вы используете более одной таблицы».

Как псевдонимы таблиц влияют на производительность? Или они действительно влияют?

Ответы [ 2 ]

39 голосов
/ 03 декабря 2011

Псевдоним никак не влияет на производительность любым практическим или измеримым образом (курсив добавлен при редактировании).То есть это добавило бы едва (если все это) измеримую задержку к компиляции запроса.После компиляции (и повторного использования) он не действует.

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

Псевдоним также является обязательным в некоторых случаях, например, связанные со схемой представления.

Механизм синтаксического анализа SQL (который считывает все запросы перед их выполнением и используетинформация для кэширования скомпилированных запросов в будущем для более быстрого выполнения) - это единственное, что просматривает псевдонимы и использует их для устранения неоднозначностей при поиске символов.Система уже будет генерировать символы, как и любой другой компилируемый оператор на любом другом языке, когда он анализируется перед хранением выполнения.

1 голос
/ 03 декабря 2011

Практически нет, влияние на производительность незначительно, но вы будете гораздо лучше читать запрос.Это просто для вашего удобства.

На производительность влияет выделение нескольких килобайт памяти для хранения псевдонимов и т. Д. В самой программе SQL Server.По сравнению с остальными операциями, необходимыми для выполнения вашего запроса, это почти ничего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...