关于ORACLE数据库的并行执行

关于ORACLE数据库的并行执行
===========================================================
作者: myfriend2010(http://myfriend2010.itpub.net)
发表于: 2007.06.26 15:27
分类: oracle
出处: http://myfriend2010.itpub.net/post/29012/299598
---------------------------------------------------------------

ORACLE数据库的并行执行

session_max_open_files:
  说明: 指定可在任一给定会话中打开的 BFILE 的最大数量。一旦达到这个数量, 此后将无法在该会话中打开更多文件。该参数还取决于操作系统参数 MAX_OPEN_FILES。
  值范围: 1 - 至少为 (50, OS 级上的 MAX_OPEN_FILES)。
  默认值: 10
parallel_execution_message_size:
  说明: 指定并行执行 (并行查询, PDML, 并行恢复和复制) 消息的大小。如果值大于 2048 或 4096, 就需要更大的共享池。如果 PARALLEL_AUTOMATIC_TUNING = TRUE, 将在大存储池之外指定消息缓冲区。
  值范围: 2148 - 无穷大。
  默认值: 如果 PARALLEL_AUTOMATIC_TUNING 为 FALSE, 通常值为 2148; 如果 PARALLEL_AUTOMATIC_TUNING 为 TRUE , 则值为 4096 (根据操作系统而定)。
Paralle_min_percent:
  说明: 指定并行执行要求的线程的最小百分比。设置该参数, 可以确保并行执行在没有可用的恰当查询从属进程时, 会显示一个错误消息, 并且该查询会因此而不予执行。
  值范围: 0 -100
  默认值: 0, 表示不使用该参数。
Parallel_automatic_tuning:
  说明: 如果设置为 TRUE, Oracle 将为控制并行执行的参数确定默认值。除了设置该参数外, 你还必须为系统中的表设置并行性。
  值范围: TRUE | FALSE
  默认值: FALSE
parallel_threads_per_cpu:
  说明: 说明一个 CPU 在并行执行过程中可处理的进程或线程的数量, 并优化并行自适应算法和负载均衡算法。如果计算机在执行一个典型查询时有超负荷的迹象, 应减小该数值。
  值范围: 任何非零值。
  默认值: 根据操作系统而定 (通常为 2)
parallel_broadcast_enabled:
  说明 : 通过使用一个散列联接或合并联接, 可以在将多个大结果集联接到一个小结果集 (以字节而不是行为单位来衡量大小) 时改善性能。如果该值设置为 TRUE, 优化程序可以将小结果集内的每个行都传播到大型集内的每个集群数据库处理行中。
  值范围: TRUE | FALSE
  默认值 : FALSE
parallel_adaptive_multi_user:
  说明: 启用或禁用一个自适应算法, 旨在提高使用并行执行方式的多用户环境的性能。通过按系统负荷自动降低请求的并行度, 在启动查询时实现此功能。当 PARALLEL_AUTOMATIC_TUNING = TRUE 时, 其效果最佳。
  值范围: TRUE | FALSE
  默认值: 如果 PARALLEL_AUTOMATIC_TUNING = TRUE, 则该值为 TRUE; 否则为 FALSE
parallel_max_servers:
  说明: 指定一个例程的并行执行服务器或并行恢复进程的最大数量。如果需要, 例程启动时分配的查询服务器的数量将增加到该数量。
  值范围: 0 -256
  默认值: 由 CPU_COUNT, PARALLEL_AUTOMATIC_TUNING 和 PARALLEL_ADAPTIVE_MULTI_USER 确定
parallel_min_servers
  说明: 指定为并行执行启动例程后, Oracle 创建的查询服务器进程的最小数量。
  值范围: 0 - PARALLEL_MAX_SERVERS。
  默认值: 0
log_archive_dest_state_3:
  说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_3) 的可用性状态。如果启用, 日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。
  值范围: ENABLE | DEFER
  默认值: ENABLE
log_archive_dest_state_4:
  说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_4) 的可用性状态。如果启用, 日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。
  值范围: ENABLE | DEFER
  默认值: ENABLE
log_archive_dest_state_5:
  说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_5) 的可用性状态。如果启用, 日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。
  值范围: ENABLE | DEFER
  默认值: ENABLE
log_archive_dest_state_6:
  说明: 标识特定日志归档目标的最近的用户定义状态。
  值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。
log_archive_dest_state_7:
  说明: 标识特定日志归档目标的最近的用户定义状态。
  值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。
log_archive_dest_state_8:
  说明: 标识特定日志归档目标的最近的用户定义状态。
  值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。

--并行查询设置
alter table emp parallel (degree 4);
select degree from user_tables where table_name = 'EMP';
select count(*) from emp;
alter table emp noparallel;

SELECT /*+ PARALLEL(emp,4) */ COUNT(*)
FROM emp;

--深度了解
一、并行执行可以提高以下操作的执行速度:
大表扫描
创建大的索引
基于分区的索引扫描
大量的插入,修改,删除操作
拷贝操作

二、并行执行的条件
SMP,CLUSTERS,MPP系统
足够的I/O带宽
足够的内存来支持消耗内存的进程(排序,哈西算法,I/O缓冲)

三、何时使用并行执行
在DSS系统中,并行执行能够发挥最好的效果,OLTP系统也能从并行执行中受益,在批处理的情况下效果更为明显。
银行电信行业的月终年终结算
基于许多大表的即时查询
数据库的备份恢复

四、与并行执行有关的参数:
1、PARALLEL_AUTOMATIC_TUNING-自动并行执行调整,缺省值为FALSE
当该参数置为TRUE时,ORACLE 服务器自动调整控制并行执行,它将自动调节影响以下参数:PARALLEL_ADAPTIVE_MULTI_USER,-PROCESSES,SESSIONS,PARALLEL_MAX_SERVERS
,LARGE_POOL_SIZE,PARALLEL_EXECUTION_MESSAGE_SIZE。

2、PARALLEL_THREADS_PER_CPU

3、PARALLEL_MAX_SERVERS

4、SHARED_POOL_SIZE

5、TRANSACTIONS

6、PARALLEL_ADAPTIVE_MULTI_USER

7、PROCESSES

8、SESSIONS

9、TRANSACTIONS

10、LARGE_POOL_SIZE


五、并行执行调整事例:
1、 小型数据系统
系统硬件配置:
CPUS = 4
Main Memory = 750MB
Disk = 40GB
Users = 16

DBA 做如下设置:
PARALLEL_AUTOMATIC_TUNING = TRUE
SHARED_POOL_SIZE = 12MB
TRANSACTIONS =系统缺省值

Oracle自动调整以下参数的值
PARALLEL_MAX_SERVERS = 64
PARALLEL_ADAPTIVE_MULTI_USER = TRUE
PARALLEL_THREADS_PER_CPU = 2
PROCESSES = 76
SESSIONS = 88
TRANSACTIONS = 96
LARGE_POOL_SIZE = 29MB

Parameter Settings for DOP and the Adaptive Multi-User Feature
The DBA parallelizes every table having more than 10,000 rows using a command
similar to the following:
ALTER TABLE employee PARALLEL;
In this example, because PARALLEL_THREADS_PER_CPU is 2 and the number of
CPUs is 4, the DOP is 8. Because PARALLEL_ADAPTIVE_MULTI_USER is set to
TRUE, Oracle may reduce this DOP in response to the system load that exists at the
time of the query's initiation.

2、 中型数据系统
系统硬件配置:
CPUS = 8
Main Memory = 2GB
Disk = 80GB
Users = 40
The DBA makes the following settings:
n PARALLEL_AUTOMATIC_TUNING = TRUE
n PARALLEL_ADAPTIVE_MULTI_USER = FALSE
n PARALLEL_THREADS_PER_CPU = 4
n SHARED_POOL_SIZE = 20MB
The DBA also sets other parameters unrelated to parallelism. As a result, Oracle
responds by automatically adjusting the following parameter settings:
n PROCESSES = 307
n SESSIONS = 342
n TRANSACTIONS = 376
n PARALLEL_MAX_SERVERS = 256
n LARGE_POOL_SIZE = 78MB
Parameter Settings for DOP and the Adaptive Multi-User Feature
The DBA parallelizes some tables in the data warehouse while creating other views
for special users:
ALTER TABLE sales PARALLEL;
CREATE VIEW invoice_parallel AS SELECT /*+ PARALLEL(P) */ * FROM invoices P;
The DBA allows the system to use the PARALLEL_THREADS_PER_CPU setting of
4 with 8 CPUs. The DOP for the tables is 32. This means a simple query uses 32
processes while more complex queries use 64.

3、 大型数据中心
系统硬件配置:
24 Nodes, 1 CPU per node
Uses MPP Architecture (Massively Parallel Processing)
Main Memory = 750MB per node
Disk = 200GB
Users = 256
The DBA uses manual parallel tuning by setting the following:
n PARALLEL_AUTOMATIC_TUNING = FALSE
n PARALLEL_THREADS_PER_CPU = 1
n PARALLEL_MAX_SERVERS = 10
n SHARED_POOL_SIZE = 75MB
n PARALLEL_SERVER_INSTANCES = 24
n PARALLEL_SERVER = TRUE
n PROCESSES = 40
n SESSIONS = 50
n TRANSACTIONS = 60
The DBA also sets other parameters unrelated to parallel execution. Because
PARALLEL_AUTOMATIC_TUNING is set to FALSE, Oracle allocates parallel
execution buffers from the SHARED_POOL.
Parameter Settings for DOP and the Adaptive Multi-User Feature
The DBA parallelizes tables in the data warehouse by explicitly setting the DOP
using syntax similar to the following:
ALTER TABLE department1 PARALLEL 10;
ALTER TABLE department2 PARALLEL 5;
CREATE VIEW current_sales AS SELECT /*+ PARALLEL(P, 20) */ * FROM sales P;
In this example, Oracle does not make calculations for parallel execution because
the DBA has manually set all parallel execution parameters.

4、 超大规模数据中心
系统硬件配置:
CPUS = 64
Main Memory 32GB
Disk = 3TB
Users = 1,000
The DBA makes the following settings:
n PARALLEL_AUTOMATIC_TUNING = TRUE
n PARALLEL_MAX_SERVERS = 600
n PARALLEL_MIN_SERVER = 600
n LARGE_POOL_SIZE = 1,300MB
n SHARED_POOL_SIZE = 500MB
n PROCESSES = 800
n SESSIONS = 900
n TRANSACTIONS = 1,024
Parameter Settings for DOP and the Adaptive Multi-User Feature
The DBA has carefully evaluated which users and tables require parallelism and
has set the values according to their requirements. The DBA has taken all steps
mentioned in the earlier examples, but in addition, the DBA also uses the following
command during peak user hours to enable the adaptive DOP algorithms:
ALTER SYSTEM SET PARALLEL_ADAPTIVE_MULTI_USER = TRUE;
During off hours when batch processing is about to begin, the DBA disables
adaptive processing by issuing the command:
ALTER SYSTEM SET PARALLEL_ADAPTIVE_MULTI_USER = FALSE;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/40011/viewspace-674045/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/40011/viewspace-674045/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值