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