(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Из всех параметров для нас являются важнейшими …

Владимир Пржиялковский, преподаватель УКЦ Interface Ltd.

Параметров функционирования СУБД, указываемых в INIT-файле, как известно, в Oracle предостаточно. Их количество меняется от версии к версии. На версии 8.1.5 для NT, например, их 195:

SQL> select count(*) from v$parameter;
 COUNT(*)
---------
      195

Это те, которые (не всегда, к сожалению, ясно) документированы. Плюс к ним можно добавить еще 248 недокументированых:

SQL> select count(*) from x$ksppi where substr(ksppinm,1,1)='_';
 COUNT(*)
---------
     248

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

К счастью, знание всех 195 параметров (о недокументированных - особый разговор), хотя и делает честь администратору (если только такой сыщется), но вовсе не обязательно для типичных использований системы. Большинство параметров становятся полезными только в специальных, не так уж часто возникающих случаях, требующих знания действительно тонкостей работы Oracle.

В "обычной" же "жизни", кроме того, не все параметры равнозначны. Какие-то вы можете править, и даже не замечать отдачи, а долгий процесс постижения правил выставления других может привести к выигрышу в производительности, скажем, всего на 1%.

В то же время значения, выставляемые Oracle по умолчанию (а они, кстати, могут быть разными на разных платформах) вовсе не обязательно хороши даже в обычных, непритязательных к изыскам случаях эксплуатации. Ряд из них все равно приходится править.

Ниже приводятся некоторые INIT-параметры, из числа влияющих на настройку структур в оперативной памяти экземпляра Oracle, на которые следует обратить внимание в первую очередь, так как эффект от их адекватного для ваших условий выставления способен привести к росту производительности, существенно превышающему упоминавшийся 1%.

Вот эти параметры:

DB_BLOCK_BUFFERS

Задает максимальное число блоков с данными в SGA. Если с диска нужно прочитать больше буферов, чем задано в DB_BLOCK_BUFFERS, блоки из SGA сбрасываются в табличные пространства по принципу "первый пришел - первый ушел" (LRU). Такой порядок, однако, можно индивидуально отменить для небольших таблиц (способных целиком разместиться в SGA самим, и оставить место другим).

DB_BLOCK_SIZE

Размер блока данных. Один для всей базы, устанавливается во время создания БД и не меняется в дальнейшем. Если в базе преобладают таблицы с интенсивно изменяемыми данными ("транзакционные системы"), выгоден небольшой размер блока. Если преобладает просмотр одной или нескольких малоизменчивых таблиц ("склады данных"), выгоден большой размер. Это противоречие в характеристиках - еще один довод в пользу разнесения аналитических и операционных данных по разным "базам" в случае использования Oracle.

SHARED_POOL_SIZE

Размер переменной части общей области (shared pool) данных в байтах. Воспринимается Oracle'ом как рекомендация, и практически всегда корректируется, исходя из собственных ограничений (это можно проверить, переустановив SHARED_POOL_SIZE, и посмотрев результат). Переменная часть shared pool используется как пространство для удовлетворения динамически возникающих у системы потребностей в памяти ОЗУ. Если размер shared pool больше необходимого, то из-за роста списков свободной памяти и при большой динамике возникающие накладные расходы на управление могут привести к снижению производительности системы. Плюс к этому, чересчур большой размер SGA может вызывать процесс страничного обмена памяти ОЗУ с диском, тормозящий общую работу.

SHARED_POOL_RESERVED_SIZE

Область в shared pool, зарезервированная для динамически возникающих запросов больших непрерывных участков памяти в SGA при обработке SQL. По умолчанию выставляется в 5% от SHARED_POOL_SIZE (указывается в байтах), но в зависимости от условий эксплуатации это место может либо пропадать, либо оказаться в дефиците. "Двигая" параметр SHARED_POOL_RESERVED_SIZE в меньшую или большую сторону (больше 50% Oracle выставить не позволит), вы не измените общего размера shared pool, но можете улучшить, или ухудшить эффективность использования этой области.

LARGE_POOL_SIZE

Если вы работаете в NT и не используете сервер "общего пользования" (shared), параллельный сервер или работу с монитором транзакций, этот параметр по умолчанию будет выставлен в 0.

SORT_AREA_SIZE

Определяет размер памяти, выделяемый каждому пользовательскому процессу на сортировку (UGA; может быть в расположена в SGA или PGA; используется, например, при обработке DISTINCT или ORDER BY). Если памяти не хватает, будет использоваться дисковое пространство - хороший способ «подсадить» работу системы. Увеличение параметра сократит число "дисковых" сортировок; в то же время объемных сортировок диска все равно не избежать. По окончанию сортировки память полностью возвращается в "кучу" UGA, то есть неприятными с точки зрения расходования памяти являются только одновременно выполняемые несколькими процессами сортировки.

SORT_AREA_RETAINED_SIZE

Задает максимальный размер памяти, динамически запрашиваемой у UGA на завершающую фазу процедуры сортировки, выполняемой с привлечением дисковой памяти. По завершению процедуры сортировки эта память возвращается, однако в завершающей стадии сортировки она может расходоваться в течение некоторого времени процессом в дополнение к "основной" памяти, регулируемой параметром SORT_AREA_SIZE. (В это время общая оперативная память, расходуемая процессом на сортировку, может достичь SORT_AREA_SIZE + SORT_AREA_RETAINED_SIZE)

BUFFER_POOL_KEEP

Целью выставления этого параметра является заведение в буфере блоков данных специального подбуфера, для которого не действует обычный LRU-механизм замещения блоков. Если имеется один или более очень активно используемых объектов (таблиц), и суммарный их объем относительно невелик, то закрепление их в памяти может повысить скорость реакции системы.

BUFFER_POOL_RECYCLE

Целью выставления этого параметра является заведение еще одного специального подбуфера, опять-таки нарушающего стандартный порядок замещения блоков, но уже противоположным образом. Если имеется большой нечасто используемый объект (очень большая таблица), можно приписать ее к подбуферу RECYCLE, и тогда Oracle "отпустит" его блоки сразу же после использования (что может дать выигрыш производительности, так как следующее обращение к блоку произойдет нескоро).

DB_FILE_MULTIBLOCK_READ_COUNT

Позволяет указать число одновременно читаемых блоков при выполнении СУБД чтения с диска. Увеличение DB_FILE_MULTIBLOCK_READ_COUNT дает заметный эффект при сканировании больших таблиц.



 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 24.05.2001 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Personal Edition Named User Plus License
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Standard Edition 2 Processor License
ABBYY Lingvo x6 Многоязычная Домашняя версия, электронный ключ
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Программирование в AutoCAD
Windows и Office: новости и советы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100