Методика рациональной настройки баз данных на примере системы “Аналитик” - page 12

Данные запросы выполняются за доли секунд, но частота их вы-
полнения может привести к снижению производительности БД. Сле-
довательно, необходимо перепроектировать ту часть программного
обеспечения, в рамках которого проводится их выполнение, что по-
требует времени. Чтобы максимально снизить негативное влияние на
БД этих типов запросов, необходимо провести анализ каждого из них
и оптимизировать их выполнение путем настройки.
Далее приведен пример настройки первого запроса. План выпол-
нения данного запроса следующий:
SELECT STATEMENT CHOOSE Cost: 2 Bytes: 7 Cardinality: 1
TABLE ACCESS BY INDEX ROWID M4ADMIN.PODRAZD Cost: 2
Bytes: 7 Cardinality: 1
INDEX UNIQUE SCAN UNIQUE M4ADMIN.SYS_C003446 Cost: 1
Cardinality: 1
Таблица PODRAZD содержит 157 записей и занимает 2 блока
БД. Если бы оптимизатор БД выбрал в качестве метода доступа
полный просмотр таблицы, то на это потребовалась бы одна опера-
ция чтения. Для индексного метода доступа потребуются три опе-
рации чтения: одна операция чтения для выборки корневого узла
индекса
SYS_C003446
, одна — для выбора листового узла индекса
SYS_C003446
, одна — для доступа к таблице
PODRAZD.
Индекс
SYS_C003446
является первичным ключом таблицы, что не позво-
ляет его удалить. Это позволяет утверждать, что оптимизатор БД
выбирает неоптимальный план выполнения запроса. Изменив параме-
тры статистики по данному индексу, например указав, что в индексе
SYS_C003446
содержатся 10 000 записей и из них только одна уни-
кальная, можно сделать индекс мало пригодным для использования
оптимизатором. Такая операция выполняется следующей командой:
DBMS_STATS.SET_INDEX_STATS
(ownname=>’M4ADMIN’,indname=>’SYS_C003446’,numrows=>10000,
numdist=>1);
В результате план выполнения данного SQL-запроса будет иметь
следующий вид (и обеспечит оптимальный тип доступа):
SELECT STATEMENT
CHOOSE Cost: 3 Bytes: 7 Cardinality: 1
TABLE ACCESS FULL
M4ADMIN.PODRAZD Cost: 3 Bytes: 7 Cardina-
lity: 1
Аналогично проводится настройка и других запросов. Тестиро-
вание SQL-запросов, проведенное в новой версии СУБД, и анализ
возвращаемых ими результатов позволяют отметить возможность ис-
пользования предложенной методики.
Средства автоматического запуска и обработки результатов трасси-
ровки сессий, тестирование способов, используемых для выполнения
102 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2010. № 4
1...,2,3,4,5,6,7,8,9,10,11 13
Powered by FlippingBook