Слайд 2Чем дальше от начала разработки обнаруживается неэффективность приложения, тем дороже она обходится
Слайд 3Оптимизаторы ORACLE
Rule Based Optimizer (RBO)
(Синтаксический оптимизатор)
Cost Based Optimizer (CBO)
(Оптимизатор по стоимости выполнения)
Слайд 4Команда ANALYZE
и Cost Based Optimizer
Сбор статистики об объектах, используемых оптимизатором, и сохранение
ее в словаре базы данных
Удаление статистики из словаря базы данных
Проверка правильности структуры объектов
Идентификация перенесенных и связанных строк в таблице или кластере
Слайд 5Где хранится собранная статистика ?
USER_TABLES, ALL_TABLES, DBA_TABLES
USER_TAB_COLUMNS, ALL_TAB_COLUMNS, DBA_TAB_COLUMNS
USER_INDEXES, ALL_INDEXES,
DBA_INDEXES
USER_CLUSTERS, DBA_CLUSTERS
Слайд 7Команда EXPLAIN PLAN
Объяснить план выполнения SQL - оператора
Слайд 8Команда EXPLAIN PLAN
Командный файл для создания PLAN_TABLE: $ORACLE_HOME/rdbmsXX/admin/utlxplan.sql
Слайд 9Команда EXPLAIN PLAN
Интерпретация информации в PLAN_TABLE:
SELECT LPAD(‘ ‘,2*(LEVEL-1))||
OPERATION||’ ‘||OPTIONS, OBJECT_NAME
FROM PLAN_TABLE
START
WITH ID = 0 AND STATEMENT_ID = ‘текст’
CONNECT BY PRIOR ID = PARENT_ID;
Слайд 10Операции, производимые ORACLE
(*) Эти операции являются методами доступа.
(+) Эти операции являются
операциями соединения (join).
Слайд 11Подсказки оптимизатору
Oracle7 Server Tuning
Часть No. A25421-1
(Главы 7 - 9)
Oracle8 Tuning Release 8.0
Часть No. A58246-01
(Главы 7 - 9)
Слайд 12Подсказки оптимизатору
Комментарий, начинающийся со знака +
SELECT /*+ ALL_ROWS */ empno, ename, sal,
job
FROM emp
WHERE empno = 7566;
Слайд 13Установка цели оптимизации
ALL_ROWS
FIRST_ROWS
CHOOSE
RULE
Слайд 14Установка метода доступа
FULL
ROWID
CLUSTER
HASH
HASH_AJ
INDEX
INDEX_ASC
INDEX_COMBINE
INDEX_DESC
INDEX_FFS
MERGE_AJ
AND_EQUAL
USE_CONCAT
Слайд 15Установка порядка соединения
ORDERED
STAR
USE_NL
USE_MERGE
USE_HASH
USE_HASH
DRIVING_SITE
Подсказки для операций соединения
Слайд 16Параллельное выполнение
PARALLEL
NOPARALLEL
APPEND
NOAPPEND
PARALLEL_INDEX
NOPARALLEL_INDEX