批量执行脚本时,批量数据写回到数据库;从EM中查看到有较多的dbwr的IO请求
查看后台dbwr的进程数量
select * from v$bgprocess
在查询结果中paddr的字段为非'00'的进程为正常使用的
查询结果为正在使用的dbwr进程为1个
使用下面的需求修改dbwr进程,最大值小于等于服务器CPU的数量;使用的服务器为8核,那么修改如下
alter system set db_writer_processes=8 scope=spfile;
然后重启oralce
再查看,当前使用的dbwr进程数量为8个了
但是在执行脚本时,并没有感觉到执行速度有明显的提高;反而感觉到执行速度比原来还要慢。我的理解是:CPU主要去调用dbwr进程了,占用了一定的资源;在执行sql语句时的效率就相对会差些了
再次修改dbwr的进程数量,将数量修改为4;这样效果会好一些