Оптимізація запитів Firebird
Оптимізація запитів Firebird охоплює те, як виконуються оператори SELECT: плани, статистика, методи доступу, шаблони налаштування та як виявляти повільні запити за допомогою MON$ і Trace API.
Програма курсу
-
Продуктивність SELECT-запитів - як виконується запит
- Клієнт-серверний підхід
- Підготовка, генерація плану, виконання, вибірки, буферизація
-
Статистика виконання
- Читання, запис, вибірки, час
- Кеш бази даних, диск, CPU
- Як сміття впливає на виконання
- Потрапляння в кеш (Classic vs SuperServer)
-
Методи доступу / шляхи до даних
- NATURAL сканування
- Пошук за індексом: B-дерева, покажчики на записи, напрямок, приклади
- Примусове використання індексу, бітове об'єднання індексів
- Кардинальність таблиці та селективність індексу
- Вимкнення індексів у WHERE
- Порядок за індексом vs SORT (налаштування
firebird.conf) - Вимкнення індексів у ORDER BY / GROUP BY
- Плани в збережених процедурах і представленнях
-
Налаштування запитів
- Як читати PLAN
- Налаштування оптимізатора
WHERE FIELD IN (…)- LIKE, CONTAINING, STARTING WITH
- JOIN: неявний vs явний, неправильні з'єднання, LEFT/RIGHT, самоз'єднання
- UPDATE + SELECT
- MAX, MIN, COUNT, AVG, SUM
- IN vs EXISTS vs MERGE
WHERE (X AND Y) OR (K AND N)
-
Відстеження повільних запитів за допомогою MON$ і Trace API
- Що таке MON$ і Trace
- Поля MON$, які мають значення
- Параметри Trace API та вивід
- Інструменти (включаючи моніторинг HQbird)