在索引create 和rebuild的时候,在CPU 允许的情况下,我们可以使用parallel来加快操作的速度,但长期开并行会严重影响服务器性能。
对于OLTP类型的数据库,除非只用于做统计、报表类的表或索引,建议不对相关表或索引调置并行度。
Oracle在并行处理时,会启动多少个并行进程来同时执行任务,并行度越高, 并行进程越多,执行速度 会越快,默认是noparallel,如果我们设置并行度为default值,那么此时的并行度是:服务器CPU数*每个CPU启用的线程数(PARALLEL_THREADS_PER_CPU)
经验值是4个U对应一个并行。
所以一般我们建议使用Noparallel,或者将并行度设置为1,而不是default;可以通过dba_tables 和 dba_indexes 视图的degree 字段来查看相关对象的并行度。
【查看并行参数】
SQL> show parameter PARALLEL_THREADS_PER_CPU
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
parallel_threads_per_cpu integer 2
SQL> show parameter parallel_max_servers
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
parallel_max_servers integer 20
对于OLTP类型的数据库,除非只用于做统计、报表类的表或索引,建议不对相关表或索引调置并行度。
Oracle在并行处理时,会启动多少个并行进程来同时执行任务,并行度越高, 并行进程越多,执行速度 会越快,默认是noparallel,如果我们设置并行度为default值,那么此时的并行度是:服务器CPU数*每个CPU启用的线程数(PARALLEL_THREADS_PER_CPU)
经验值是4个U对应一个并行。
所以一般我们建议使用Noparallel,或者将并行度设置为1,而不是default;可以通过dba_tables 和 dba_indexes 视图的degree 字段来查看相关对象的并行度。
【查看并行参数】
SQL> show parameter PARALLEL_THREADS_PER_CPU
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
parallel_threads_per_cpu integer 2
SQL> show parameter parallel_max_servers
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
parallel_max_servers integer 20