Оптимизация скорости работы Кошкин Алексей Антонович, Руководитель проектов «Центра Информационных Технологий и Консалтинга Парус»
2 Оптимизация - действия по уменьшению потребления ресурсов сервера БД уменьшению времени отклика пользовательской операции Тема 10. Оптимизация скорости работы
3 Оптимизация Тема 10. Оптимизация скорости работы Оптимизация экземпляра (Instance tuning) Оптимизация SQL запросов (SQL tuning) Изменение параметров БД Изменение физ. конфигурации сервера Изменение планов выполнения Изменение SQL запросов Изменение логики обработки
4 Первоначальная конфигурация системы 1.подбор конфигурации сервера 2.настройка параметров ОС (*nix) 3.настройка параметров экземпляра 4.тестирование под нагрузкой Тема 10. Оптимизация скорости работы Планирование
5 1. Подбор конфигурации сервера количество пользователей (одновременно работающих с системой) объем информации хранимой в БД, набор модулей Парус Пример: размер БД для модулей Бухучет и ЗСР ~ 300Gb за 5 лет работы (без учета undo и temp) количество БД, размещаемых на сервере вариант резервного копирования Тема 10. Оптимизация скорости работы Планирование Дисковая подсистема ПроцессорыПамять ! + % роста
6 2. Конфигурация дисковой подсистемы Типы файлов БД Тема 10. Оптимизация скорости работы Планирование Файлы данныхData files*.dbf, *.dat Управляющие файлыControl files*.ctl, *.ora Файлы журналов повтораRedo log files*.rdo, *.ora Файлы трассировки и журналов оповещений Trace log, alert log, information log Файлы параметровParameter file*.ora Файл паролейPassword file*.pwd
7 3. Настройка параметров экземпляра Тема 10. Оптимизация скорости работы Планирование SGA PGA_AGGRIGATE_TARGET SGA_TARGET SGA_MAX_SIZE DB_CACHE_SIZE SHARED_POOL_SIZE JAVA_POOL_SIZE REDO_LOG_BUFFER PGA + Общий объем памяти экземпляра = > 10g
8 4. Сервис нагрузочного тестирования Отдельный сервис в лицензии Моделирование одновременного и многократно повторяемых процессов Каждый процесс – последовательность действий в Системе Используются клиентские процедуры Тема 10. Оптимизация скорости работы Планирование
9 Оптимизация Тема 10. Оптимизация скорости работы Оптимизация экземпляра (Instance tuning) Оптимизация SQL запросов (SQL tuning) только при планировании Добавление нового экземпляра на сервер Добавление схемы для другого приложения в БД Ввод процедур, требовательных к ресурсам (закачка/выгрузка данных, jobs, сбор статистики…) для решения любых оперативных проблем производительности Запуск отчета/процедуры Отбор в разделе Импорт/экспорт …
10 Для оперативной оптимизации Тема 10. Оптимизация скорости работы Оптимизация экземпляраОптимизация SQL запросов Начиная от оптимизации экземпляра не всегда можно выйти на нужные пользовательские операции Начиная от пользовательской операции можно выйти на проблемы экземпляра, связанные с настройкой параметров или изменением конфигурации сервера = × Мониторинг экземпляра может помочь предупредить проблемы, увидеть симптомы проблем, дать сигнал к началу работ по оптимизации = Оптимизация пользовательских операций
11 КОГДА? (нужно ли) Вывод годового отчета длится 30мин Открытие раздела длится 10 секунд Запуск JOBа приводит к загрузке дисков на 90% Тема 10. Оптимизация скорости работы Оптимизация SQL запросов = ? Что? Где? Когда?
12 ГДЕ? (проводить оптимизацию) Клиентское приложение Сеть Сервер БД Тема 10. Оптимизация скорости работы Оптимизация SQL запросов Что? Где? Когда?
13 ЧТО? (меняется в результате оптимизации) Изменение SQL запроса Изменение параметров экземпляра Изменение конфигурации сервера Тема 10. Оптимизация скорости работы Оптимизация SQL запросов Что? Где? Когда?
14 Что нужно знать 1.Стадии выполнения запроса 2.Что такое Oracle Optimizer (RBO и CBO) 3.План (выполнения) запроса 4.Статистика Тема 10. Оптимизация скорости работы Оптимизация SQL запросов
15 Начало оптимизации: Порядок действий Система – это набор пользовательских операций Время отклика пользовательской операции – это единственный показатель, представляющий интерес для бизнеса Тема 10. Оптимизация скорости работы Оптимизация SQL запросов
16 Начало оптимизации: Порядок действий 1.Определение наиболее значимых пользовательских операции для бизнеса 2.Точное определение границ 3.Оценка времени отклика и профиль ресурсов : SQL trace и tkprof Profiler Explain plan DBMS_MONITOR 4.Выбор наиболее медленных компонент из профиля Тема 10. Оптимизация скорости работы Оптимизация SQL запросов
17 Профиль ресурсов Component Duration # Calls Dur/Call CPU service 48,946.7s 98.0% 192, s db file sequential read 940.1s 2.0% 507, s SQL*Net message from client 60.9s 0.0% 191, s latch free 2.2s 0.0% s other 1.4s 0.0% Total 49,951.3s 100.0% Тема 10. Оптимизация скорости работы Оптимизация SQL запросов Общее время отклика операции
18 SQL trace Тема 10. Оптимизация скорости работы Оптимизация SQL запросов файл.trcSQL tracetkprof Профиль ресурсов ORACLE_HOME/rdbms/admin/tracetab.sql
19 SQL trace a) alter session set tracefile_identifier= ; alter session set events '10046 trace name context forever, level 12'; /* code to be traced goes here */ alter session set events '10046 trace name context off'; b) sys.dbms_system.set_sql_trace_in_session( sid=>xxx, serial#=>yyy, sql_trace=>TRUE ); /* code to be traced goes here */ sys.dbms_system.set_sql_trace_in_session( sid=>xxx, serial#=>yyy, sql_trace=>FALSE ); Тема 10. Оптимизация скорости работы Оптимизация SQL запросов
20 SQL trace tkprof explain= / Тема 10. Оптимизация скорости работы Оптимизация SQL запросов user_dump_dest
21 Профиль ресурсов Component Duration # Calls Dur/Call CPU service 48,946.7s 98.0% 192, s db file sequential read 940.1s 2.0% 507, s SQL*Net message from client 60.9s 0.0% 191, s latch free 2.2s 0.0% s other 1.4s 0.0% Total 49,951.3s 100.0% Тема 10. Оптимизация скорости работы Оптимизация SQL запросов Средства отладки запросов Доступны: общий профиль и профиль шагов
22 Profiler Тема 10. Оптимизация скорости работы Оптимизация SQL запросов ORACLE_HOME/rdbms/admin/profload.sql DBMS_PROFILER
23 просматривать состояние экземпляра выполнять действия по оптимизации задавать пороговые значения и автоматическое оповещение ведет историю Oracle Enterprise Manager Тема 10. Оптимизация скорости работы Мониторинг > 10g
24 Факторы, влияющие на производительность Версия ПП Парус и Oracle Сбор статистики Наличие других приложений на сервере БД Тип Операционной системы для Парус Массовая регистрация событий Наличие собственных индексов Объем данных в разделе Тема 10. Оптимизация скорости работы
25 Обновление на новую версию Парус Оптимизация SQL запросов и логики работы Переход на новую версию Oracle дефрагментация данных Систематизация собственных наработок Новые возможности Системы Тема 10. Оптимизация скорости работы