1)parallell_automatic_tuning 设成true时,则改变了一些px相关的default参数值
parallel_execution_message_size =4k
parallel_max_servers=cpus * parallel_threads_per_cpu * 4 * 5
parallel_threads_per_cpu parameter ( default OS-dependent, usually 2 )
processes=if processes < parallel_max_servers The processes parameter is increased
等等。
PARALLEL_ADAPTIVE_MULTI_USER=true,则采用了自适应算法,第一个进入的用户使用全部的并行度,然后第二个进入的用一部份,并且减少第一个用户的使用量,以此类退,用户越多,各用户所分配的并发度越少.
2)不用建表和索引的时候全部都用parallel的,可能会产生不必要的系统竞争或者是os的context switch. 可以使用hint来使用parallel query.
3)parallel server execution pool是由PARALLEL_MIN_SERVERS, PARALLEL_MAX_SERVERS,PARALLEL_MIN_PERCENT 三个参数决定的.
eg.1 Parallel_max_servers=8, parallel_min_servers=4, parallel_min_percent=50
假设现在有6个parallel query slave processes正在工作。这时,又有一个带有并发度6查询进入系统。但此时Oracle只能再产生两个process. 而且parallel_min_percent=50,Oracle也不可能产生3个processes( 6*50%=3). 然后Oracle 报错ORA-12827.
eg2. Parallel_max_servers=8, parallel_min_servers=4,parallel_min_percent=0
假设现在有8个parallel query slave processes正在工作。则因为parallel_min_percent=0, 则任何新的并发查询则以串行的方式运行,则系统会很慢。
如果你设置了parallel_automatic_tuning,则注意parallel_max_servers的default值被改变了。
|