Какова важность псевдонима таблицы в запросе соединения SQL? - PullRequest
2 голосов
/ 12 октября 2011

Я написал SQL-запрос соединения в оракуле с двумя таблицами. При написании запроса я не использовал псевдоним таблицы для ссылки на столбец в предложении select. Теперь это стало возможным, потому что выбранные столбцы имели разные имена в обеих таблицах.

Итак, вопрос следует; необходимо ли (с точки зрения производительности) использовать псевдоним таблицы для выбора столбца, независимо от того, есть ли в обеих таблицах одинаковое имя столбца?

Обратите внимание: сейчас у меня сложилось впечатление, что «В случае запроса на соединение, когда мы не указываем псевдоним таблицы для выбора столбца, оракул всегда будет искать метаданные таблицы, чтобы выяснить, в какой таблице есть этот столбец». Так верно ли мое предположение?

Спасибо, hanumant

Ответы [ 2 ]

1 голос
/ 12 октября 2011

Нет, ваше предположение не соответствует действительности.

Существует как минимум четыре причины использовать псевдонимы таблиц:

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

Нет значительного снижения производительности от их использования.

0 голосов
/ 13 октября 2011

Чтобы упростить задачу ...

Это не удалось

select 
ID,
ID
from table1 
inner join table2  on table1.ID = table2.AnotherID

Это не удалось

select 
a.ID,
b.ID
from table1 a
inner join table2 b on a.ID = b.AnotherID

Причина первого сбоя в том, чтоМодуль оптимизации не знает, из какой таблицы нужно извлечь поле идентификатора.С псевдонимом - вы даете ему «подсказку» относительно того, какую таблицу использовать.Псевдоним является просто заменой полного имени таблицы.

Вы также должны быть осторожны, когда пытаетесь получить доступ к псевдонимам таблиц.Для получения дополнительной информации об этом проверьте порядок операций SQL.

...