Чим більша кількість таблиць в запиті, тим більший об’єм роботи треба виконати для опрацювання запиту.
В SQL немає ніяких обмежень на кількість таблиць, які сполучаються в одному багатотабличному запиті, але СУБД обмежують цю кількість таблиць (як правило, max = 8 табл.).
На практиці – великі затрати на опрацювання багатотабличних запитів накладають ще сильніші обмеження на кількість таблиць.
Всі запити на вибірку можна поділити на дві категорії:
1)-ша категорія – оперативні запити:
- використовуються в системах оперативного опрацювання транзакцій (OLTP) (поняття транзакцій будемо розглядати пізніше).
- ці запити, як правило, звертаються лише до однієї чи двох таблиць.
В таких системах час відповіді – це вирішальна величина – користувач вводить один або два елементи даних і йому потрібно отримати відповідь від бази даних протягом однієї чи двох секунд.
Ось типові запити для систем оперативного опрацювання транзакцій:
користувач вводить в якесь вікно ідентифікатор клієнта, а СУБД виводить на екран величину кредиту, стан рахунку та інші дані про цього клієнта (запит до однієї таблиці).
користувач за допомогою спеціального пристрою сканує з упаковки штрих – код товару, а СУБД виводить на екран назву і ціну товару (запит до однієї таблиці).
користувач вводить прізвище працівника, а програма виводить список ще не виконаних замовлень, прийнятих цим працівником (запит до двох таблиць)
2)-га категорія – запити, які:
- використовуються в системах підтримки прийняття рішень.
- ці запити, як правило, звертаються до багатьох таблиць і використовують складні відношення, що існують в базі даних.
В таких системах результати запиту часто потрібні для прийняття важливих рішень, тому вважаються цілком нормальними запити, які виконуються протягом кількох хвилин або кількох годин.
Ось типові запити, пов’язані із прийняттям рішень:
користувач вводить назву філії, а програма виводить список 25 самих великих замовлень, прийнятих працівниками цієї філії (запит до трьох таблиць)
в запиті підсумовуються продажі кожного працівника по типам товарів і показується, який працівник які товари і на яку суму продав (запит до трьох таблиць)
керівник розглядає можливість відкриття нової філії в якомусь місті і виконує запит для аналізу замовлень, клієнтів, товарів і працівників в довколишньому регіоні (запит до чотирьох таблиць)
До якої би категорії не відносився запит – єдине правило: чим менше таблиць (в декартовому добутку) – тим швидше буде виконуватися запит.
Звідси – рекомендація: слід уникати зайвих таблиць в багатотабличних запитах. Методика побудови запитів на вибірку: