Довідковий матеріал

Упорядкування результатів запиту

1.1. Якщо алгоритм обробки результатів запиту залежить від порядку записів у запиті або якщо результат обробки запиту в тій чи іншій формі подається користувачеві, то в тексті запиту слід використовувати речення УПОРЯДКУВАТИ ЗА. За відсутності виразу УПОРЯДКУВАТИ ЗА неможливо зробити жодних припущень про те, у якому порядку будуть подані записи в результатах запиту.Спільне використання з конструкцією РІЗНІ. Обмеження на використання конструкції АВТОУПОРЯДКУВАННЯ

Спільне використання з конструкцією РІЗНІ

Обмеження на використання конструкції АВТОУПОРЯДКУВАННЯ

 

1.1. Якщо алгоритм обробки результатів запиту залежить від порядку записів у запиті або якщо результат обробки запиту в тій чи іншій формі подається користувачеві, то в тексті запиту слід використовувати речення УПОРЯДКУВАТИ ЗА. За відсутності виразу УПОРЯДКУВАТИ ЗА неможливо зробити жодних припущень про те, у якому порядку будуть подані записи в результатах запиту.

Типові приклади проблем, які можуть виникати:

  • різна послідовність рядків табличної частини під час заповнення за результатами запиту;
  • різний порядок виведення даних (рядків, колонок) у звітах;
  • різне заповнення рухів документа за результатами запиту (*).

Імовірність виникнення різних результатів під час виконання однакових дій підвищується

  • під час перенесення інформаційної бази на іншу СУБД
  • під час зміни версії СУБД
  • під час зміни параметрів СУБД

* Примітка: упорядкування результатів запитів, за якими формуються рухи, виправдане лише в тому разі, якщо упорядкування є частиною алгоритму формування рухів (наприклад, списання залишків партій товарів за FIFO). В інших випадках упорядковувати записи не слід, оскільки додаткове упорядкування створюватиме надмірне навантаження на СУБД.

1.2. Якщо результати запиту повинні тим чи іншим чином відображатися користувачеві, то

  • упорядковувати результати таких запитів необхідно за полями примітивних типів;
  • упорядкування за полями посилальних типів потрібно замінювати на упорядкування за рядковими поданнями цих полів.

В іншому разі порядок розташування рядків виглядатиме для користувача випадковим (незрозумілим).

Див. також: Сортування рядків таблиць значень

1.3. Відсутність речення УПОРЯДКУВАТИ ЗА виправдана лише в тих випадках, коли

  • алгоритм обробки результатів запиту не розраховує на певний порядок записів
  • результат обробки виконаного запиту не показується користувачеві
  • результат запиту — свідомо один запис

У таких випадках рекомендується не додавати речення УПОРЯДКУВАТИ ЗА до тексту запиту, оскільки це призводить до додаткових витрат часу під час виконання запиту.

Спільне використання з конструкцією РІЗНІ

2. Якщо в запиті використовується конструкція РІЗНІ, упорядкування слід виконувати лише за полями, включеними до вибірки (у секції ВИБРАТИ).

Ця вимога пов’язана з такою особливістю виконання запитів: до полів вибірки неявно включаються поля упорядкування, що, своєю чергою, може призвести до появи в результаті запиту кількох рядків з однаковими значеннями полів вибірки.

Обмеження на використання конструкції АВТОУПОРЯДКУВАННЯ

3. Використання конструкції ПЕРШІ спільно з конструкцією АВТОУПОРЯДКУВАННЯ заборонено.

В інших випадках конструкцію АВТОУПОРЯДКУВАННЯ також не рекомендується використовувати, оскільки розробник не контролює, які саме поля будуть використані для упорядкування. Застосування такої конструкції виправдане лише в тих випадках, коли отриманий порядок записів не важливий, але при цьому він повинен бути однаковим незалежно від застосовуваної СУБД.

Причини використання конструкції АВТОУПОРЯДКУВАННЯ слід зазначати в коментарі, розміщеному безпосередньо перед текстом запиту.

Записатися телефоном