В первой части статей рассматривались пути извлечения недокументированных пакетов, рекомендаций, утилит и выполняемых модулей из Оракла. В этой части рассмотрим некоторые пути, где недокументированные параметры используются с целью помочь специалистам Oracle в управлении и настройке их систем.
Компания Oracle делает большую оговорку, что недокументированная инициализация параметров обычно только используется в непредвиденных случаях.
Невозможно рассмотреть более 100 недокументированными параметров в одной статье. Давайте рассмотрим в первую очередь параметры связанные с производительностью.
Для специализированных задач, таких как настройка базы данных, невозможно определить недокументированные (скрытые параметры). Необходимо тщательно протестировать все недокументированные параметры и получить разрешение технической поддержки компании Oracle перед их использованием в работе.
Параметры внутренней блокировки
- _db_block_hash_buckets - по умолчанию 2x db_block_buffers, ближайшее простое число должно приниматься значение до 2х db_block_buffers
- _db_block_hash_latches - по умолчанию 1024 , но лучше иногда проставлять значение 32768
- _kgl_latch_count - по умолчанию =0, которое означает 1+количество CPU. Сопоставления данных блокировки может зачастую может быть сокращено переустановкой параметра на значение 2*CPU+1
- _latch_spin_count - этот параметр показывает, как часто выполняется запрос внутренней блокировки
- _db_block_write_batch - Прежде документированный параметр, на данный момент недокументированный. Данный параметр - это количество блоков, которые разработчики баз данных включат в каждый пакет. По умолчанию параметр равен 512 или db_files*db_file_simultaneous_writes/2 до лимита 1/4значения параметра db_cache_size
Параметры параллельных запросов
Данные параметры - это эффективное средство для улучшения скорости поиска больших и заполненных таблиц, некоторые пользователи DBA осведомлены, что существуют дюжины скрытых параметров, которые можно изменить для изменения характера параллельных запросов. Ниже приведен запрос для отображения параметров:
COLUMN parameter FORMAT a37
COLUMN description FORMAT a30 WORD_WRAPPED
COLUMN "Session VALUE" FORMAT a10
COLUMN "Instance VALUE" FORMAT a10
SET LINES 100 PAGES 0
SELECT
A.KSPPINM "Parameter",
A.KSPPDESC "Description",
B.KSPPSTVL "Session Value",
C.KSPPSTVL "Instance Value"
FROM
X$KSPPI A,
X$KSPPCV B,
X$KSPPSV C
WHERE
A.INDX = B.INDX
AND
A.INDX = C.INDX
AND
A.KSPPINM LIKE '/_parallel%' escape '/'
SPOOL OFF
Этот скрипт запускается под пользователем SYS, потому что только пользователь SYS имеет доступ к внутренним таблицам X$.
NAME VALUE
----------------------------------- ------------------------------
_parallel_adaptive_max_users 1
_parallel_default_max_instances 1
_parallel_execution_message_align FALSE
_parallel_fake_class_pct 0
_parallel_load_bal_unit 0
_parallel_load_balancing TRUE
_parallel_min_message_pool 64560
_parallel_recovery_stopat 32767
_parallel_server_idle_time 5
_parallel_server_sleep_time 10
_parallel_txn_global FALSE
_parallelism_cost_fudge_factor 350
Наиболее важен это параметр _parallelism_cost_fudge_factor. Данный параметр определяет выполнение параллельного запроса путем вызова затратного SQL оптимизатора, когда значение параметра parallel_automatic_tuning=true. Путем настройки параметров можно контролировать пороговую величину вызова параллельных запросов.
Сейчас рассмотрим некоторые общие недокументированные параметры DBA. Ниже указаны наиболее распространенные недокументированные параметры, используемые в администрировании.
Недокументированные параметры повреждения
Данные параметры позволяют игнорировать разрушение блоков данных, когда база данных повреждена. Эти параметры необходимо использовать только в экстренных случаях.
- _allow_resetlogs_corruption - Данный параметр может использоваться только в случае открытия резервных копий без настроек резервирования в табличном пространстве
- _corrupted_rollback_segments - Единственный способ стартовать без повреждений публичных сегментов отката. Этот недокументированный параметр может быть использован не боясь потери поддержки
- _allow_read_only_corruption - Этот параметр позволяет открыть базу данных даже если она повреждена. Данный параметр следует использоваться для экспорта большого кол-ва данных из поврежденной базы данных как только возможно перед созданием базы данных. Базу данных открытую данным способом не следует использовать в рабочем виде, поскольку она не будет поддерживаться
- _corrupt_blocks_on_stuck_recovery -Данный параметр иногда полезен в получении поврежденных стартовых данных базы данных. Тем не менее, можно она не будет поддерживаться без одобрения компании Oracle. Как только экспорт таблиц сделан и перестроен база данных может быть использована
Недокументированные параметры SQL оптимизатора
Данные параметры контролируют внутренние характер SQL оптимизатора по стоимости (CBO).
- _fast_full_scan_enabled - данный параметр позволяет или запрещает быстрый полный поиск по индексам, если только индексы требуются для разрешения выполнения запросов
- _always_star_transformation - данный параметр помогает настраивать (редактировать) запросы хранилища данных, чтобы хранилище было должным образом разработано
- _small_table_threshold - Этот параметр устанавливает размер описания небольшой таблицы. Небольшая таблица автоматически закрепляет в буферы при необходимости. По умолчанию равен 2 в Oracle 9i