Рейтинг: 5/5
У більшості випадків, коли користувач видає запит до бази даних, існує більше одного способу звернення до таблиць і вилучення даних. Оскільки існує багато способів виконання одного і того ж оператора, Oracle використовує вартісної оптимізатор (Cost-Based Optimizer - CBO) для вибору кращого плану виконання запитів на основі вартості запиту, вираженої в використовуваних ресурсах.
Оптимізація запитів - основа сучасних реляційних баз даних і істотна частина того, як Oracle виконує свою роботу. Оптимізатор запитів прозорий для користувачів, і Oracle автоматично вибирає найкращі методи доступу і з'єднання таблиць для ваших запитів перед тим, як почати їх обробку.
На замітку! Щоб вибрати найкращий план обробки, Oracle використовує статистику за таблицями і індексам, яка включає підрахунок кількості рядків і розподілу "зрізу" даних з таблиць бази. (Статистика фізичного зберігання і розподілу даних по всіх таблиць і індексам, стовпцями і розділах зберігається в різних таблицях словника даних.) Озброєний цією інформацією, оптимізатор зазвичай з успіхом вибирає найкращий шлях доступу до необхідних даних для виконання оператора SQL. Oracle також дозволяє використовувати підказки (hints), щоб перевизначити обраний оптимізатором план виконання. Це пов'язано з тим, що в деяких випадках знання розробника додатка про дані дозволяє використовувати більш ефективні плани, ніж може вибрати оптимізатор.