Tuesday, June 4, 2019

Init parameter in 12c database

Database Initialization Parameters for Oracle E-Business Suite Release 12 (Doc ID 396009.1) has recommendations on parameter values.  Below lists init parameters that are not set as the default to support a R12.1.3 instance with about 300 users at peak time.

NAMEVALUE
_b_tree_bitmap_plansFALSE
_fast_full_scan_enabledFALSE
_like_with_bind_as_equalityTRUE
_optimizer_autostats_jobFALSE
_sort_elimination_cost_ratio5
_sqlexec_progression_cost2147483647
_system_trig_enabledTRUE
_use_single_log_writerTRUE
aq_tm_processes4
audit_sys_operationsTRUE
audit_trailDB (default is NONE)
compatible12.1.0
control_file_record_keep_time30
control_files/path/to1/ctrl01.dbf, /path/to2/ctrl02.dbf, /path/to3/ctrl03.dbf
cursor_sharingEXACT
db_block_checkingFALSE
db_block_checksumTRUE
db_block_size8192
db_cache_size5368709120 (or, 5G)
db_files1000
db_nameEBSPROD
diagnostic_dest/path/to/db_ebsprod/admin/EBSPROD_ebsdb1p
dml_locks10000
filesystemio_optionssetall
java_jit_enabledFALSE
job_queue_processes20
local_listener(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EBSPROD_ipc)))
log_archive_dest/path/to/EBSPROD/arch/arch.log
log_buffer10485760 (or, 10M)
log_checkpoint_interval100000
log_checkpoint_timeout1200
log_checkpoints_to_alertTRUE
max_dump_file_size10000
memory_max_target25769803776 (or, 24G)
memory_target25769803776
nls_compbinary
nls_date_formatDD-MON-RR
nls_languageAMERICAN
nls_length_semanticsBYTE
nls_numeric_characters.,
nls_sortbinary
nls_territoryAMERICA
olap_page_pool_size4194304 (or, 4M)
open_cursors4096
optimizer_adaptive_features FALSE
optimizer_secure_view_mergingFALSE
os_authent_prefixext$
parallel_max_servers64
parallel_min_servers0
parallel_servers_target64
parallel_threads_per_cpu2
pga_aggregate_limit0
pga_aggregate_target0 (this is the default. Could be set to 1G)
plsql_code_typeINTERPRETED
plsql_optimize_level0
processes3000
query_rewrite_enabledtrue
recovery_parallelism1
recyclebinON
remote_login_passwordfileNONE
remote_os_authentFALSE
sec_case_sensitive_logonFALSE
sec_protocol_error_further_action  drop,3
session_cached_cursors500
session_max_open_files100
sessions4536
sga_max_size25769803776 (or, 24G)
shared_pool_reserved_size214748364
shared_pool_size4294967296 (or, 4G)
sql92_securityTRUE
temp_undo_enabledTRUE
timed_statisticsTRUE
undo_managementAUTO
undo_retention43200
undo_tablespaceAPPS_UNDO_TBS
utl_file_dir/path/to/EBSPROD/utl_dir, /usr/tmp
workarea_size_policyAUTO

The database server is an IBM LPAR configuration. 4 Oracle databases on it share its resources of 6 cores CPUs and 92 GB memory, and it is all virtual.

parallel_max_servers =  Maximum value should be 2 X #of CPUs.
This parameter depends on the number of cores. It uses logical CPUs and 5 cores (4-way SMP).  The SMP threads don’t really replicate a full core.

optimizer_adaptive_features = FALSE
If it is set to true, queries may run OK on a first run, but poorly on subsequent runs. Oracle will try to adapt the plans using cardinality feedback and other features that can be good, but can also cause issues.

parallel_threads_per_cpu = 2
Because the core CPU are 4-way SMP, it shows 4x more CPUs than it really has. If it set to a higher value (say, 16), Oracle will keep overallocating the CPU resources for parallel queries and spinning up too many parallel threads for the memory and CPU that it has.

No comments: