One of the main drivers I discovered is CPU_COUNT.
So I did some tests based in the past for version 11.1.0.7 and 12.1.0.2.
To simulate a machine with sufficient CPUs, I had to use a trick described in a previous post. Using _disable_cpu_check threw an ORA-7445:[ksucre] in 12.2 with cpu_count >126.
the script I used this time is basically (of course with 180 instead of 122 for 18.0).
#!/usr/bin/ksh -x integer i=1 while ((i <= 255)); do print " $i "; echo "*.audit_file_dest='/_some_dir_/BX1/adump' *.audit_trail='db' *.compatible='12.2.0.1.0' *.control_files='/_some_dir_/BX1/controlfile/o1_mf_djd017z2_.ctl', '/_some_dir_/fast_recovery_area/BX1/BX1/controlfile/o1_mf_djd01834_.ctl' *.db_block_size=8192 *.db_create_file_dest='/_some_dir_/oradata' *.db_name='BX1' *.db_recovery_file_dest='/_some_dir_/fast_recovery_area/BX1' *.db_recovery_file_dest_size=7G *.db_unique_name='BX1' *.diagnostic_dest='/appl/oracle' *.remote_login_passwordfile='EXCLUSIVE' *.sga_target=7g *.undo_tablespace='UNDOTBS1' *.max_string_size='EXTENDED' #*._disable_cpu_check='TRUE' *.cpu_count=$i" > /_some_dir_/cpus/initBX1_$i.ora echo "shutdown abort; startup pfile='/_some_dir_/cpus/initBX1_$i.ora' ; insert into init_parameters select '12.2' , $i , a.ksppinm , b.ksppstvl , c.ksppstvl from x\$ksppi a, x\$ksppcv b, x\$ksppsv c where a.indx = b.indx and a.indx = c.indx; commit; select distinct(\"CPUs\") from init_parameters; shutdown; exit;"> cpus/122doit$i.sql sqlplus "/ as sysdba" @cpus/122doit$i.sql >cpus/122log$i.log sleep 5 (( i = i + 1)); done
11.1.0.7 | 12.1.0.2 | 12.2.0.1 | 18.0.0.0 | |
---|---|---|---|---|
_cursor_db_buffers_pinned | x | x | x | x |
_db_block_buffers | x | x | x | x |
_db_block_lru_latches | x | x | x | x |
__db_cache_size | x | x | x | x |
_db_file_exec_read_count | x | x | ||
db_file_multiblock_read_count | x | x | ||
_db_handles | x | x | x | |
db_writer_processes | x | x | x | x |
dml_locks | x | x | x | |
_enqueue_hash | x | x | x | |
_enqueue_hash_chain_latches | x | x | x | x |
_enqueue_locks | x | x | x | x |
_enqueue_resources | x | x | x | |
_flashback_generation_buffer_size | x | x | x | x |
_gc_fast_index_split_wait | x | |||
_gcs_min_cr_slaves | x | x | ||
_kghdsidx_count | x | x | ||
_hang_resolution_scope | x | x | ||
_ksmsq_hintmaxproc | x | |||
__large_pool_size | x | x | x | |
_lms_rollbacks | x | x | ||
log_buffer | x | x | x | x |
_log_parallelism_max | x | x | x | x |
_log_simultaneous_copies | x | x | x | x |
_max_log_write_parallelism | x | x | ||
_max_outstanding_log_writes | x | x | x | |
_max_pending_scn_bcasts | x | x | x | |
_messages | x | x | x | |
_num_longop_child_latches | x | x | x | x |
_num_rlslaves | x | x | ||
parallel_max_servers | x | x | x | x |
_parallel_min_message_pool | x | x | x | x |
parallel_min_servers | x | x | x | |
parallel_servers_target | x | x | x | |
pga_aggregate_limit | x | x | x | |
_pmon_max_slaves | x | x | ||
_pmon_slaves_arr_size | x | x | ||
processes | x | x | x | |
_px_proactive_slave_alloc_threshold | x | x | x | |
_session_allocation_latches | x | x | x | |
sessions | x | x | x | |
sga_max_size | x | x | ||
shared_pool_reserved_size | x | x | x | |
__shared_pool_size | x | x | x | x |
_shared_server_num_queues | x | x | x | x |
_small_table_threshold | x | x | x | x |
_spin_count | x | x | x | x |
_sqlmon_max_plan | x | x | x | |
_super_shared_conversion_threshold | x | x | ||
transactions | x | x | x | |
_use_single_log_writer | x | x | x |
To get a good picture of the changes, feel free to select parameters, versions or whatever you want below.
Raw data is available at GistHub.
The js app is available here.
(It's based on an idea PerfSheet.js by Luca Canali.
As some of the values are not numbers, I applied this mapping:
TRUE | 1 |
FALSE | 0 |
OFF | 0 |
ADAPTIVE | -1 |
INSTANCE | -2 |
Keine Kommentare:
Kommentar veröffentlichen