Ср Июн 20, 2007 19:29  План выполнения запроса
Полезность: Нет оценки
Какие средства для просмотра планов выполнения запросов существуют в IBSO?
Создание эффективных запросов во многих случаях требует анализа планов их выполнения. Администратор словаря данных IBSO предоставляет следующие возможности просмотра планов
существующих представлений для просмотра и представлений для отчетов на закладке "Отладка" в редакторе представлений
произвольных запросов в диалоговом окне "Планы выполнения SQL запросов", вызываемом из меню "Сервер -> Проверки".
Ср Июн 20, 2007 19:30  Планы каких запросов и представлений анализировать
Полезность: Нет оценки
Планы каких запросов и представлений имеет смысл анализировать?
Если Вы намерены получить пользу от анализа плана – необходимо помнить, что план конечного запроса, непосредственно выполняемого для построения отчета или формирования набора записей в Навигаторе, будет отличаться от плана на закладке "Отладка" редактора представлений. Различия могут быть минимальными для представлений для просмотра и кардинальными в отношении отчетов.
Конечный план запроса для представления для просмотра можно получить следующим образом. Устанавливаем флаг "Служебный интерфейс" в диалоговом окне Навигатора "Настройка параметров работы", вызываемого через "Управление -> Настройка". В любом вновь открытом представлении теперь отображается кнопка "SQL" - предоставляющая возможность просмотра текста SQL-запроса. В зависимости от настроек представления и клиентского места – запрос накладывает дополнительные условия, сортировку, ограничение на число экземпляров в выборке из представления для просмотра, что может существенно повлиять на план выполнения запроса. Планы могут кардинально различаться при использовании пользовательских фильтров в Навигаторе или создании к представлению операций типа "Фильтр".
Конечный план запроса, выполняемого во время выполнения отчета, следует всегда брать из самого шаблона и анализировать в диалоговом окне "Планы выполнения SQL запросов". План самого представления для отчета в Администраторе практически всегда будет кардинально отличаться, поскольку обычно не содержит основных условий, ограничивающих выборку.
Используя диалоговое окно "Планы выполнения SQL запросов" можно также анализировать запросы, полученные в результате трансляции операции на Pl/Plus в пакеты Oracle.
Ср Июн 20, 2007 19:32  Использование константных значений и переменных
Полезность: Нет оценки
Как влияет использование константных значений и переменных на планы выполнения запросов?
Создавая новые запросы и анализируя старые, следует помнить, что использование константных значений вместо переменных и наоборот, может существенно сказаться на плане их выполнения. Рассмотрим на примерах:
Пример 1
Код:
select *
from Z#MAIN_DOCUM
where STATE_ID = :S
and C_DATE_PROV >= to_date('01/01/2006')
CRIT_RPT_PLAN SELECT STATEMENT Cost=1
2.1 TABLE ACCESS(BY INDEX ROWID) - Z#MAIN_DOCUM
3.1 INDEX(RANGE SCAN) - IDX_Z#MAIN_DOCUM_DATE_PROV(NON-UNIQUE)
или
select *
from Z#MAIN_DOCUM
where STATE_ID = :S
and C_DATE_PROV >= :SD
В примере 1 разница обусловлена тем, что использование константных значений позволяет оптимизатору использовать гистограммы значений (см. 1, раздел 7 страница 4) и таким образом создавать планы с большей избирательной способностью (см. 2, раздел 20 страница 59-60). Что наглядно демонстрируется в следующем примере, отличающемся от примера 1 только датой:
Пример 3
Код:
select *
from Z#MAIN_DOCUM
where STATE_ID = :S
and C_DATE_PROV >= to_date('01/01/1800')
Видно, что индекс по дате проводки больше не используется, поскольку данное условие не обладает избирательной особенностью.
Отличия в планах в примере 2 обусловлено тем, что условие вида "column LIKE ‘%pattern’" в принципе не позволяет использовать индекс по column (см. 2, раздел 20 страница 57).
Резюмируем:
в ходе разработки необходимо учитывать отличия в использовании константных значений и переменных;
если Вы желаете увидеть реальный план выполнения запроса – не следует подставлять константы вместо переменных и наоборот.
В тексте ответа присутствуют ссылки на:
1) Oracle8 Tuning Release 8.0 December, 1997 Part No. A58246-01
2) Oracle8 Concepts Release 8.0 December, 1997 Part No. A58227-01
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
Домен cftclub.ru не связан с ЗАО "Центр Финансовых Технологий" и ни в коей мере не нарушает авторских и иных прав
Владелец может не разделять мнения Участников и не несет ответственности за их публикации
Powered by phpBB