Автор: Kendra Little, Carrying Baggage Through Query Plans: Why Wide Queries Get Heavy
Я постоянно вижу этот шаблон: «широкий» запрос, который возвращает много столбцов и менее 100 тысяч строк, выполняется медленно. SQL Server замедляется, когда тащит большие объёмы «багажа» через весь план запроса, подобно путешественнику-одиночке, который таскает по аэропорту огромные чемоданы вместо того, чтобы забрать их поближе к месту назначения.
SQL Server часто минимизирует доступ к данным, захватывая все столбцы, которые ему понадобятся, на раннем этапе выполнения запроса, а затем выполняя соединения и фильтрацию. Это означает, что презентационные столбцы (presentation columns) подхватываются рано.
Презентационные столбцы: Термин, который я позаимствовала у Эрика Дарлинга (Erik Darling). Он относится к описательным столбцам, которые нужны вам в конечном результирующем наборе, но вы не используете их для соединения или фильтрации.
Этот шаблон — подхватывание «багажа» данных на раннем этапе и перетаскивание его через план — также является одной из причин, почему SQL Server любит память так же, как:
- енот любит мусор,
- пингвин любит хорошо прошлёпать,
- администратор баз данных любит говорить «нет»,
- инструкция
MERGEлюбит хаос, - я люблю свободный проход в магазине.

