Оптимизация скорости работы

реклама
Оптимизация скорости работы
Кошкин Алексей Антонович, Руководитель проектов
«Центра Информационных Технологий и Консалтинга
Парус»
koshkin@parus.ru
Тема 10. Оптимизация скорости работы
Оптимизация действия по
• уменьшению потребления ресурсов
сервера БД
• уменьшению времени отклика
пользовательской операции
2
Тема 10. Оптимизация скорости работы
Оптимизация
Оптимизация экземпляра
Оптимизация SQL запросов
(Instance tuning)
(SQL tuning)
• Изменение параметров БД
• Изменение планов выполнения
• Изменение физ. конфигурации
• Изменение SQL запросов
сервера
• Изменение логики обработки
3
Тема 10. Оптимизация скорости работы
Планирование
Первоначальная конфигурация системы
1. подбор конфигурации сервера
2.
настройка параметров ОС (*nix)
3. настройка параметров экземпляра
4. тестирование под нагрузкой
4
Тема 10. Оптимизация скорости работы
Планирование
1. Подбор конфигурации сервера
•
количество пользователей (одновременно работающих
•
с системой)
объем информации хранимой в БД, набор модулей Парус
Пример: размер БД для модулей Бухучет и ЗСР ~ 300Gb за 5 лет работы (без учета
undo и temp)
•
•
количество БД, размещаемых на сервере
вариант резервного копирования
Дисковая подсистема
!
Процессоры
Память
+%
роста
5
Тема 10. Оптимизация скорости работы
Планирование
2. Конфигурация дисковой подсистемы
Типы файлов БД
Файлы данных
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
6
Тема 10. Оптимизация скорости работы
Планирование
3. Настройка параметров экземпляра
> 10g
Общий объем памяти экземпляра =
PGA
+
SGA
PGA_AGGRIGATE_TARGET
SGA_TARGET
SGA_MAX_SIZE
DB_CACHE_SIZE
SHARED_POOL_SIZE
JAVA_POOL_SIZE
REDO_LOG_BUFFER
7
Тема 10. Оптимизация скорости работы
Планирование
4. Сервис нагрузочного тестирования
•
•
•
•
Отдельный сервис в лицензии
Моделирование одновременного и
многократно повторяемых процессов
Каждый процесс – последовательность
действий в Системе
Используются клиентские процедуры
8
Тема 10. Оптимизация скорости работы
Оптимизация
Оптимизация экземпляра
Оптимизация SQL запросов
(Instance tuning)
(SQL tuning)
только при планировании
• Добавление нового экземпляра
на сервер
• Добавление схемы для другого
приложения в БД
• Ввод процедур, требовательных к
ресурсам (закачка/выгрузка
данных, jobs, сбор статистики…)
для решения любых оперативных
проблем производительности
• Запуск отчета/процедуры
• Отбор в разделе
• Импорт/экспорт
•…
9
Тема 10. Оптимизация скорости работы
Для оперативной оптимизации
×
Оптимизация экземпляра
Начиная от оптимизации
экземпляра не всегда можно
выйти на нужные
пользовательские операции
=
Мониторинг экземпляра
может помочь предупредить
проблемы, увидеть симптомы
проблем, дать сигнал к началу
работ по оптимизации
Оптимизация SQL запросов
=
Оптимизация
пользовательских операций
Начиная от пользовательской
операции можно выйти на проблемы
экземпляра, связанные с настройкой
параметров или изменением
конфигурации сервера
10
Тема 10. Оптимизация скорости работы
Оптимизация
SQL запросов
Что? Где? Когда?
КОГДА? (нужно ли)
• Вывод годового отчета длится
30мин
• Открытие раздела длится 10
секунд
• Запуск JOBа приводит к
загрузке дисков на 90%
=
?
11
Тема 10. Оптимизация скорости работы
Оптимизация
SQL запросов
ГДЕ?
Что? Где? Когда?
(проводить оптимизацию)
• Клиентское приложение
• Сеть
• Сервер БД
12
Тема 10. Оптимизация скорости работы
Оптимизация
SQL запросов
ЧТО?
Что? Где? Когда?
(меняется в результате оптимизации)
• Изменение SQL запроса
• Изменение параметров экземпляра
• Изменение конфигурации сервера
13
Тема 10. Оптимизация скорости работы
Оптимизация
SQL запросов
Что нужно знать
1.
2.
3.
4.
Стадии выполнения запроса
Что такое Oracle Optimizer (RBO и CBO)
План (выполнения) запроса
Статистика
14
Тема 10. Оптимизация скорости работы
Оптимизация
SQL запросов
Начало оптимизации: Порядок действий
Система – это
набор пользовательских операций
Время отклика пользовательской
операции – это
единственный показатель, представляющий
интерес для бизнеса
15
Тема 10. Оптимизация скорости работы
Оптимизация
SQL запросов
Начало оптимизации: Порядок действий
1. Определение наиболее значимых
пользовательских операции для бизнеса
2. Точное определение границ
3.
Оценка времени отклика и профиль ресурсов:
•
•
•
•
SQL trace и tkprof
Profiler
Explain plan
DBMS_MONITOR
4. Выбор наиболее медленных компонент из
профиля
16
Тема 10. Оптимизация скорости работы
Оптимизация
SQL запросов
Профиль ресурсов
Component
--------------------------CPU service
db file sequential read
SQL*Net message from client
latch free
other
--------------------------Total
Duration
---------------48,946.7s 98.0%
940.1s
2.0%
60.9s
0.0%
2.2s
0.0%
1.4s
0.0%
---------------49,951.3s 100.0%
# Calls
------192,072
507,385
191,609
171
Dur/Call
---------0.254835s
0.001853s
0.000318s
0.012690s
-------
----------
Общее время отклика операции
17
Тема 10. Оптимизация скорости работы
Оптимизация
SQL запросов
SQL trace
SQL trace
ORACLE_HOME/rdbms/admin/tracetab.sql
файл .trc
tkprof
Профиль
ресурсов
18
Тема 10. Оптимизация скорости работы
Оптимизация
SQL запросов
SQL trace
a) alter session set tracefile_identifier=<xxx>;
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 );
19
Тема 10. Оптимизация скорости работы
Оптимизация
SQL запросов
SQL trace
tkprof <файл.trc> <выходной файл профиля>
explain=<username>/<pwd>
user_dump_dest
20
Тема 10. Оптимизация скорости работы
Оптимизация
SQL запросов
Средства отладки запросов
Профиль ресурсов
Component
--------------------------CPU service
db file sequential read
SQL*Net message from client
latch free
other
--------------------------Total
Duration
---------------48,946.7s 98.0%
940.1s
2.0%
60.9s
0.0%
2.2s
0.0%
1.4s
0.0%
---------------49,951.3s 100.0%
# Calls
------192,072
507,385
191,609
171
Dur/Call
---------0.254835s
0.001853s
0.000318s
0.012690s
-------
----------
Доступны: общий профиль и профиль шагов
21
Тема 10. Оптимизация скорости работы
Оптимизация
SQL запросов
Profiler
ORACLE_HOME/rdbms/admin/profload.sql
DBMS_PROFILER
22
Тема 10. Оптимизация скорости работы
Мониторинг
Oracle Enterprise Manager
> 10g
• просматривать состояние экземпляра
• выполнять действия по оптимизации
• задавать пороговые значения
и автоматическое оповещение
• ведет историю
23
Тема 10. Оптимизация скорости работы
Факторы, влияющие на производительность
•
•
•
•
Версия ПП Парус и Oracle
Сбор статистики
Наличие других приложений на сервере БД
Тип Операционной системы
для Парус
•
•
•
Массовая регистрация событий
Наличие собственных индексов
Объем данных в разделе
24
Тема 10. Оптимизация скорости работы
Обновление на новую версию Парус
•
•
Оптимизация SQL запросов и логики работы
Переход на новую версию Oracle
•
•
•
дефрагментация данных
Систематизация собственных наработок
Новые возможности Системы
25
Скачать