Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

999

积分

1

好友

942

主题
1#
发表于 2013-10-7 21:18:32 | 查看: 3364| 回复: 0
Oracle 并行查询调优parallel query

Oracle 并行查询主要用于数据仓库类型的数据库,Oracle 并行查询(OPQ)可以将一个SQL分成多个片,然后在独自的CPU上通过多个process进行并行运行。
典型的应用是:full table scans, creating or rebuilding an index ,one or more partitions of an index,Partition operations such as moving or splitting partitions,CREATE TABLE AS SELECT operations if the SELECT involves a full table or partition scan 。INSERT INTO . . . SELECT operations, if the SELECT involves a full table or partition scan ,Update

and delete operations on partitioned tables,sorts, sub_queries, data loading等。
大量使用Oracle 并行查询,将消耗更多的CPU,对于CPU消耗比较高的系统而言,需要控制并行查询的并发规模。
并行查询规模相关的参数调整
与并行查询规模相关的参数,主要有下面几个:
PARALLEL_MIN_SERVERS
PARALLEL_MAX_SERVERS
PARALLEL_AUTOMATIC_TUNING=TRUE (ORACLE会尽量使用PARALLEL)
PARALLEL_MIN_SERVERS缺省值是0,PARALLEL_MAX_SERVERS
是CPU的10倍,在CPU使用率很高并且是因为大量的并行查询导致的,可以通过调整PARALLEL_MAX_SERVERS来缓解CPU的使用压力



多个级别的并行查询调整
也可以在OBJECT、STATEMENT、TABLE等各个级别来控制并发程度。


OBJECT级启用OPQ:
ALTER TABLE /INDEX XXX PARALLEL (DEGREE 8)
OR
STATEMENT级
SELECT --+ PARALLEL (table_alias, degree, nodes) from table …..
或/*+ FULL(emp) PARALLEL(table_alias, 35) */
表级停止OPQ:
ALTER TABLE/INDEX XXX PARALLEL (DEGREE 1 INSTANCES 1)
OR
ALTER TABLE/INDEX XXX NOPARALLEL;
Paralle Query并不一定是最好的,尤其是武断的把所有TABLE都设置成Paralle Query更是危险的,因为CBO会改变评估标准而尽量使用parallel full-table scans而不是index scans。


并行查询监控

可以通过下面的视图来监控并行查询:
select * from v_$pq_sysstat;
select * from v_$px_process;
select * from v_$px_sesstat;
select * from v_$px_process_sysstat;



并行跨实例运行
建议一般情况下并行查询限制在实例内,这可以通过INSTANCE_GROUPS、PARALLEL_INSTANCE_GROUPS参数来实现.
比如在节点1上设置:
rac1.Instance_groups=rac1,rac
Rac1.Parallel_instance_group=rac1
在节点2上设置:
Rac2.Instance_groups=rac2,rac
Rac2.Parallel_instance_group=rac2
通过这些参数的设置,在缺省环境下,并行查询只能在实例内进行。因为每个实例的缺省PARALLEL_INSTANCE_GROUP都是实例名,只有本实例的instance_groups参数中包含和本实例名相同的instance_group。而如果我们想要让某个SQL跨实例做并行查询的时候,可以通过下面的方法进行:
Alter session set parallel_instance_group='rac';


Select ....
由于两个实例都属于rac instance_group,所以只要parallel_instance_group设置为‘rac’就可以了。

下载专业ORACLE数据库恢复工具PRM-DUL  For Oracle http://www.parnassusdata.com/

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638  QQ: 47079569     邮箱:service@parnassusdata.com
您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-6-1 19:39 , Processed in 0.048354 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569