Найгірші методи (MS SQL Server) – сортування за номерами стовпців

Найгірші методи – це те, що простирається від незначного роздратування до того, що зводить вас з розуму. Цей метод лежить на більш помірної стороні (в залежності від того, як пройшла ваша робочий тиждень). Потрапляли ви коли-небудь на подібний запит?


Select field1, field2, field3 from pubs order by 1, 2


Фактично, він має виглядати так:


Select field1, field2, field3 from pubs order by field1, field2

Мені доводилося чути різні варіації про те, що це потужний інструмент користувача (якщо змінюється пропозиція select, то не потрібно також змінювати порядок сортування), і "короткий" – означає, що швидше написати 1, 2, ніж виписувати імена полів. Дайте мені шанс!


Шанс – це те, що Ви маєте намір отримати, коли щось змінюється. Переробка оператора select змінює порядок полів, який змінює order by, який змінює …., то, як будуть використовуватися індекси! Це один з тих тонких моментів, який змусить Вас провести багато часу в пошуках вирішення проблем там, де вони зазвичай ніколи не виникають.


Але зачекайте …, ми могли б використовувати нашого старого друга Select *, тоді не буде причин переробляти запит! Ми обговоримо достоїнства select * наступного разу, а поки будемо виходити з того, що все ще є користувачі, які наполягають на тому, щоб розташовувати в алфавітному порядку стовпці в EM (Enterprise Manager в SQL Server). Ви стикаєтеся з тією ж самою проблемою. Порядок стовпців в select змінюється, це змінює …

Andy Warren (Оригінал: Worst Practice – Sorting by Ordinal)
Переклад: Моісеєнко С.І.
Оригінал перекладу


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*