План запроса
-
Основы планов запросов
- План запроса — это последовательность шагов для доступа к данным в СУБД SQL.
- Планы запросов являются частным случаем концепции планов доступа, основанных на реляционной модели.
- SQL является декларативным, что позволяет использовать различные планы выполнения с разной производительностью.
-
Оптимизация запросов
- Оптимизаторы запросов оценивают различные планы выполнения и выбирают лучший.
- Пользователи и администраторы могут вручную проверять и настраивать планы для повышения производительности.
-
Получение планов запросов
- СУБД предоставляют различные механизмы для получения плана запроса, включая графические и текстовые представления.
- В Oracle можно использовать инструкцию EXPLAIN PLAN для получения текстового плана.
-
Графические планы
- Графические планы позволяют просматривать атрибуты операторов и их стоимость.
- Microsoft SQL Server Management Studio предоставляет графический план для примера запроса.
-
Текстовые планы
- Текстовые планы показывают, как база данных будет выполнять запрос, включая сканирование и поиск.
- Пример текстового плана показывает, что запрос будет использовать сканирование и поиск для объединения таблиц.
-
Настройка базы данных
- Пересмотр плана запроса может указывать на необходимость создания или изменения индексов.
- Неправильное использование индексов может быть обнаружено при анализе плана запроса.
-
Настройка запросов
- Оптимизатор запросов не всегда выбирает оптимальный план, и пользователи могут вручную его настраивать.
- В некоторых базах данных можно использовать альтернативные запросы для достижения тех же результатов.
- Инструменты запроса могут предоставлять подсказки для оптимизации запросов.
-
Инструменты оптимизации
- Oracle предлагает CBO и RBO для оптимизации запросов.
- CBO требует анализа всех таблиц, на которые ссылается запрос, с использованием пакета DBMS_STATS.
- Другие инструменты для оптимизации включают трассировку SQL, Oracle Trace и TKPROF, а также запись производительности в виде таблицы.