oracle数据库的ora_p进程为什么这么多?
这个进程是数据库的并发服务进程,常会发现数据库服务器数量越多,并发服务进程就越多。和这个进程相关的参数有四个,oracle12c中,受限四个参数
cpu_count
parallel_threads_per_cpu
parallel_max_servers Default value PARALLEL_THREADS_PER_CPU *CPU_COUNT * concurrent_parallel_users *5
parallel_min_servers Default value PARALLEL_THREADS_PER_CPU *CPU_COUNT * concurrent_parallel_users *2
数据库启动的时候,初始化的并发服务进程数就是parallel_min_servers ,最大不超过parallel_max_servers(还有个限制就最大不超过3600)
具体参看:
SQL>showparameter para
NAME TYPE VALUE
-----------------------------------------------------------------------------
cell_offload_parameters string
fast_start_parallel_rollback string LOW
parallel_adaptive_multi_user boolean TRUE
parallel_automatic_tuning boolean FALSE
parallel_degree_level integer 100
parallel_degree_limit string CPU
parallel_degree_policy string MANUAL
parallel_execution_message_size integer 16384
parallel_force_local boolean FALSE
parallel_instance_group string
parallel_io_cap_enabled boolean FALSE
NAME TYPE VALUE
-----------------------------------------------------------------------------
parallel_max_servers integer 221
parallel_min_percent integer 0
parallel_min_servers integer 64
parallel_min_time_threshold string AUTO
parallel_server boolean FALSE
parallel_server_instances integer 1
parallel_servers_target integer 256
parallel_threads_per_cpu integer 2
recovery_parallelism integer 0
SQL>showparameter cpu
NAME TYPE VALUE
-----------------------------------------------------------------------------
cpu_count integer 16
parallel_threads_per_cpu integer 2