ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Bookmark

Next issue

3
Publication date:
16 September 2019
-->

The article was published in issue no. № 2, 2008
Abstract:
Аннотация:
Authors: (kovalev.fsu@mail.ru) - , , , Ph.D, (tsarev.sfu@mail.ru) - , , , Ph.D, () - , , , (tsarev.sfu@mail.ru) - , , , () - , ,
Keywords: optimisation, DB Oracle, database management system
Page views: 11751
Print version
Full issue in PDF (1.83Mb)

Font size:       Font:

Современный уровень развития программно-информационных технологий корпоративных структур предполагает сложные расчеты данных большого объема. Хранение структурированной информации и ее обработка практически невозможны без использования баз данных. С целью сокращения времени доступа и обработки информации требуется оптимизировать процесс работы СУБД. Одним из целесообразных подходов для решения этой задачи является оптимизация настроек СУБД. Авторским коллективом была разработана программная система "MultiDB", которая позволяет оптимизировать настройки системы управления базами данных ORACLE. Основной задачей программной системы «MultiDB» является оптимизация настроек СУБД ORACLE.

 

СУБД ORACLE как компонент программно-информационных технологий корпоративных структур – это сложно настраиваемый программный продукт. Его гибкость позволяет оказывать влияние на информационную производительность корпоративной среды в целом. При этом требуются небольшие настроечные изменения, которые, тем не менее, произвести вручную практически не возможно. Однако, как показывает опыт эксплуатации информационных систем, основанных на СУБД ORACLE, такая настройка существенно влияет на производительность системы, обеспечивая повышенную готовность и доступность информационных ресурсов. Путем настройки ORACLE можно влиять на качество управления IT-услугами в корпорации и удовлетворять разнообразные потребности пользователей.

Особенности настроек СУБД ORACLE

Процесс настройки и оптимизации ORACLE состоит из четырех шагов-процедур, а именно: настройки распределения памяти, ввода-вывода, соперничества и дополнительных параметров.

Рассмотрим последовательно содержание указанных процедур.

Настройка распределения памяти. Правильное распределение ресурсов памяти между структурами ORACLE имеет большое влияние на производительность. На первом шаге определяется, сколько памяти выделять областям SQL и PL/SQL, кэшу словаря данных, буферному кэшу.

Правильное распределение ресурсов памяти способно улучшить производительность кэша; сократить разбор предложений SQL, блоков PL/SQL, а также сократить страничный обмен и свопинг.

Настройка ввода-вывода. Дисковый ввод-вывод имеет тенденцию снижать производительность многих программных приложений. Однако система ORACLE спроектирована так, что ее производительность не обязательно должна лимитироваться вводом-выводом.

На втором шаге выполняется настройка ввода-вывода, включающая следующие процедуры:

· распределение ввода-вывода таким образом, чтобы избежать соперничества за диски;

· размещение данных в дисковых блоках для лучшего доступа;

· манипулирование размерами экстентов данных.

Настройка соперничества. Одновременная работа пользователей ORACLE в состоянии создать конкуренцию в доступе к ресурсам ORACLE. Соперничество процессов может привести к ожиданию ими освобождения ресурсов. На третьем шаге посредством настроек уменьшается соперничество за сегменты отката, за процессы в архитектуре многоканального сервера, а также за замки буфера журнала повторения.

Настройка дополнительных параметров. Выполнив первые три шага оптимизации, можно значительно улучшить производительность ORACLE подбором значений некоторых параметров в процессе эксплуатации ORACLE. Подбор параметров производится вручную, что является очень трудоемким процессом в связи с большим количеством параметров. Кроме того, проведя корректировку, можно и не достичь максимального быстродействия. Приведем список некоторых параметров настройки ORACLE, влияющих на производительность.

OPEN_CURSORS – максимальное число открытых курсоров (контекстных областей), которое может одновременно иметь один пользовательский процесс. Этот параметр контролирует максимальное адресное пространство, используемое каждым процессом.

SHARED_POOL_SIZE – размер разделяемого пула, содержащего разделяемые курсоры и хранимые процедуры. Большие значения улучшают производительность в многопользовательских системах. Меньшие значения экономят память.

DB_BLOCK_BUFFERS – число блоков базы данных, кэшируемых в памяти в SGA (один блок равен одному буферу). Этот параметр является наиболее существенным детерминантом размера SGA и производительности базы данных. Высокое значение этого параметра позволяет пользователю с большей вероятностью получить доступ к блоку базы данных, находящемуся в памяти, что сокращает время ввода-вывода. Недостаток высокого значения в том, что при этом потребляется больше памяти.

MTS_MAX_SERVERS – максимальное число разделяемых серверных процессов, которые могут выполняться одновременно.

LOG_SMALL_ENTRY_MAX_SIZE – размер в байтах наибольшей записи, которая может копироваться в буфер журнала повторения под замком распределения, без получения замка копирования. Если значение LOG_SIMULTANEOUS_COPIES равно 0, этот параметр игнорируется (все записи маленькие и пишутся без замка копирования).

SORT_AREA_SIZE – максимальный объем памяти в области PGA для внешней (дисковой) сортировки. Эта память освобождается, когда отсортированные строки записываются на диск. Увеличение SORT_AREA_SIZE улучшает эффективность больших сортировок.

Множественных распределений не бывает никогда: лишь одна область памяти размером SORT_AREA_SIZE существует в каждый момент времени для каждого пользовательского процесса.

SORT_AREA_RETAINED_SIZE – максимальный объем памяти сессии, в байтах, который может использоваться для сортировки в памяти. Эта память освобождается, когда извлечена последняя отсортированная строка. Если сортировке требуется больше памяти, то распределяется временный сегмент, и сортировка становится внешней (дисковой) сортировкой. Максимальный объем памяти, используемый такой сортировкой, теперь будет определяться параметром SORT_AREA_SIZE. Большие значения позволяют выполняться в памяти сортировкам данных большего размера.

Для упрощения ручного подбора параметров настроек в данной программной системе предлагается использовать алгоритм условной многоатрибутивной целочисленной оптимизации – модифицированный покоординатный спуск. В качестве атрибутов используются параметры настроек, оптимизируемый параметр – минимальное время выполнения процедур.

Для оптимизации применяется следующий алгоритм.

1. Прогон тестового примера, останов инстанции ORACLE и установка начальных параметров.

2. Запуск инстанции ORACLE.

3. Оптимизация параметра: измерение времени исполнения; останов инстанции ORACLE; если возможно улучшить, то изменение параметров с учетом ограничений и переход на шаг 2; если дальнейшее улучшение невозможно, то переход на шаг 4.

4. Запуск инстанции ORACLE с оптимизированными параметрами.

Приведем ограничения на некоторые параметры настроек СУБД ORACLE:

OPEN_CURSORS

(интервал значений: 1 ... определяется ОС);

SHARED_POOL_SIZE

(интервал значений: 300 Кб … зависит от ОС);

DB_BLOCK_BUFFERS

(интервал значений: 4 или больше);

MTS_MAX_SERVERS

(интервал значений: зависит от ОС);

LOG_SMALL_ENTRY_MAX_SIZE

(интервал значений: зависит от ОС);

SORT_AREA_SIZE

(интервал значений: зависит от ОС);

SORT_AREA_RETAINED_SIZE

(интервал значений: 0 ... SORT_AREA_SIZE).

Данный оптимизационный алгоритм реализован в составе программной системы многоатрибутивной оптимизации настроек СУБД ORACLE «MultiDB» (Ковалев И.В., Царев М.Ю., Антамош- кин О.А., Тюпкин М.В., Шевчук С.Ф. «Оптимизация настроек систем управления базами данных (программная система «MultiDB ver. 1.0»)». - М.: ВНТИЦ, 2007. - № 50200701342. - Рег. номер ОФАП 8533).

Увеличение производительности СУБД ORACLE улучшает надежностные характеристики архитектуры программно-информационных технологий для корпоративных структур, в том числе оказывает влияние на среднее время появления сбоя, простоя системы и на коэффициент готовности системы. Цель программной системы – обеспечить гарантированную доступность ресурсов при мультиверсионном формировании программно-информационных технологий.

Разработанная программная система позволяет в удобной для пользователя форме задавать шаблон мультиверсионного программного комплекса и автоматически формировать его версионный состав.

Оптимизация настроек СУБД эффективно реализована с использованием алгоритма условной многоатрибутивной целочисленной оптимизации (модифицированного покоординатного спуска), в качестве координат приняты параметры настроек, а оптимизируемый параметр – минимальное время выполнения тестового примера.

Отметим, что программная система оптимизации настроек СУБД ORACLE «MultiDB» реализована на языке С++ в среде визуального программирования C++ Builder (версия 5.0) фирмы Borland International Inc. При проектировании структуры программы использовался объектно-ориентированный подход. «MultiDB» функционирует в ОС Windows 9X/2000 и старше. Система обладает удобным пользовательским интерфейсом.

Программная система «MultiDB» используется на практических занятиях по дисциплинам «Разработка программного обеспечения для информационно-управляющих систем», «Проектирование баз данных» и «Информационные системы в экономике» для студентов Сибирского государственного аэрокосмического университета (и его филиала в г. Железногорске) и Сибирского федерального университета.


Permanent link:
http://swsys.ru/index.php?page=article&id=744&lang=en
Print version
Full issue in PDF (1.83Mb)
The article was published in issue no. № 2, 2008

Perhaps, you might be interested in the following articles of similar topics: