数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

ORACLE数据库的并行执行


发布日期:2024年03月26日
 
ORACLE数据库的并行执行

session_max_open_files:

说明: 指定可在任一给定会话中打开的 BFILE 的最大数量一旦达到这个数量 此后将无法在该会话中打开更多文件该参数还取决于操作系统参数 MAX_OPEN_FILES

值范围: 至少为 ( OS 级上的 MAX_OPEN_FILES)

默认值:

parallel_execution_message_size:

说明: 指定并行执行 (并行查询 PDML 并行恢复和复制) 消息的大小如果值大于 就需要更大的共享池如果 PARALLEL_AUTOMATIC_TUNING = TRUE 将在大存储池之外指定消息缓沖区

值范围: 无穷大

默认值: 如果 PARALLEL_AUTOMATIC_TUNING 为 FALSE 通常值为 ; 如果 PARALLEL_AUTOMATIC_TUNING 为 TRUE 则值为 (根据操作系统而定)

Paralle_min_percent:

说明: 指定并行执行要求的线程的最小百分比设置该参数 可以确保并行执行在没有可用的恰当查询从属进程时 会显示一个错误消息 并且该查询会因此而不予执行

值范围:

默认值: 表示不使用该参数

Parallel_automatic_tuning:

说明: 如果设置为 TRUE Oracle 将为控制并行执行的参数确定默认值除了设置该参数外 你还必须为系统中的表设置并行性

值范围: TRUE | FALSE

默认值: FALSE

parallel_threads_per_cpu:

说明: 说明一个 CPU 在并行执行过程中可处理的进程或线程的数量 并优化并行自适应算法和负载均衡算法如果计算机在执行一个典型查询时有超负荷的迹象 应减小该数值

值范围: 任何非零值

默认值: 根据操作系统而定 (通常为 )

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:

说明: 指定一个例程的并行执行服务器或并行恢复进程的最大数量如果需要 例程启动时分配的查询服务器的数量将增加到该数量

值范围:

默认值: 由 CPU_COUNT PARALLEL_AUTOMATIC_TUNING 和 PARALLEL_ADAPTIVE_MULTI_USER 确定

parallel_min_servers

说明: 指定为并行执行启动例程后 Oracle 创建的查询服务器进程的最小数量

值范围: PARALLEL_MAX_SERVERS

默认值:

log_archive_dest_state_:

说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_) 的可用性状态如果启用 日志目标将被归档如果延迟 该目标将被排除在归档操作之外直至重新启用

值范围: ENABLE | DEFER

默认值: ENABLE

log_archive_dest_state_:

说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_) 的可用性状态如果启用 日志目标将被归档如果延迟 该目标将被排除在归档操作之外直至重新启用

值范围: ENABLE | DEFER

默认值: ENABLE

log_archive_dest_state_:

说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_) 的可用性状态如果启用 日志目标将被归档如果延迟 该目标将被排除在归档操作之外直至重新启用

值范围: ENABLE | DEFER

默认值: ENABLE

log_archive_dest_state_:

说明: 标识特定日志归档目标的最近的用户定义状态

值范围: ENABLE如果目标属性有效 则启用归档日志目标; DEFER即使目标属性有效 也要延迟处理归档日志目标; 或者是 ALTERNATE延迟处理归档日志目标 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)

log_archive_dest_state_:

说明: 标识特定日志归档目标的最近的用户定义状态

值范围: ENABLE如果目标属性有效 则启用归档日志目标; DEFER即使目标属性有效 也要延迟处理归档日志目标; 或者是 ALTERNATE延迟处理归档日志目标 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)

log_archive_dest_state_:

说明: 标识特定日志归档目标的最近的用户定义状态

值范围: ENABLE如果目标属性有效 则启用归档日志目标; DEFER即使目标属性有效 也要延迟处理归档日志目标; 或者是 ALTERNATE延迟处理归档日志目标 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)

并行查询设置

alter table emp parallel (degree );

select degree from user_tables where table_name = EMP;

select count(*) from emp;

alter table emp noparallel;

SELECT /*+ PARALLEL(emp) */ COUNT(*)

FROM emp;

深度了解

并行执行可以提高以下操作的执行速度

大表扫描

创建大的索引

基于分区的索引扫描

大量的插入修改删除操作

拷贝操作

并行执行的条件

SMPCLUSTERSMPP系统

足够的I/O带宽

足够的内存来支持消耗内存的进程(排序哈西算法I/O缓沖)

何时使用并行执行

在DSS系统中并行执行能够发挥最好的效果OLTP系统也能从并行执行中受益在批处理的情况下效果更为明显

银行电信行业的月终年终结算

基于许多大表的即时查询

数据库的备份恢复

与并行执行有关的参数

PARALLEL_AUTOMATIC_TUNING自动并行执行调整缺省值为FALSE

当该参数置为TRUE时ORACLE 服务器自动调整控制并行执行它将自动调节影响以下参数PARALLEL_ADAPTIVE_MULTI_USERPROCESSESSESSIONSPARALLEL_MAX_SERVERS

LARGE_POOL_SIZEPARALLEL_EXECUTION_MESSAGE_SIZE

PARALLEL_THREADS_PER_CPU

PARALLEL_MAX_SERVERS

SHARED_POOL_SIZE

TRANSACTIONS

PARALLEL_ADAPTIVE_MULTI_USER

PROCESSES

SESSIONS

TRANSACTIONS

LARGE_POOL_SIZE

并行执行调整事例

小型数据系统

系统硬件配置

CPUS =

Main Memory = MB

Disk = GB

Users =

DBA 做如下设置:

PARALLEL_AUTOMATIC_TUNING = TRUE

SHARED_POOL_SIZE = MB

TRANSACTIONS =系统缺省值

Oracle自动调整以下参数的值

PARALLEL_MAX_SERVERS =

PARALLEL_ADAPTIVE_MULTI_USER = TRUE

PARALLEL_THREADS_PER_CPU =

PROCESSES =

SESSIONS =

TRANSACTIONS =

LARGE_POOL_SIZE = MB

Parameter Settings for DOP and the Adaptive MultiUser Feature

The DBA parallelizes every table having more than rows using a command

similar to the following:

ALTER TABLE employee PARALLEL;

In this example because PARALLEL_THREADS_PER_CPU is and the number of

CPUs is the DOP is 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 querys initiation

中型数据系统

系统硬件配置

CPUS =

Main Memory = GB

Disk = GB

Users =

The DBA makes the following settings:

n PARALLEL_AUTOMATIC_TUNING = TRUE

n PARALLEL_ADAPTIVE_MULTI_USER = FALSE

n PARALLEL_THREADS_PER_CPU =

n SHARED_POOL_SIZE = MB

The DBA also sets other parameters unrelated to parallelism As a result Oracle

responds by automatically adjusting the following parameter settings:

n PROCESSES =

n SESSIONS =

n TRANSACTIONS =

n PARALLEL_MAX_SERVERS =

n LARGE_POOL_SIZE = MB

Parameter Settings for DOP and the Adaptive MultiUser 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

with CPUs The DOP for the tables is This means a simple query uses

processes while more complex queries use

大型数据中心

系统硬件配置

Nodes CPU per node

Uses MPP Architecture (Massively Parallel Processing)

Main Memory = MB per node

Disk = GB

Users =

The DBA uses manual parallel tuning by setting the following:

n PARALLEL_AUTOMATIC_TUNING = FALSE

n PARALLEL_THREADS_PER_CPU =

n PARALLEL_MAX_SERVERS =

n SHARED_POOL_SIZE = MB

n PARALLEL_SERVER_INSTANCES =

n PARALLEL_SERVER = TRUE

n PROCESSES =

n SESSIONS =

n TRANSACTIONS =

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 MultiUser Feature

The DBA parallelizes tables in the data warehouse by explicitly setting the DOP

using syntax similar to the following:

ALTER TABLE department PARALLEL ;

ALTER TABLE department PARALLEL ;

CREATE VIEW current_sales AS SELECT /*+ PARALLEL(P ) */ * FROM sales P;

In this example Oracle does not make calculations for parallel execution because

the DBA has manually set all parallel execution parameters

超大规模数据中心

系统硬件配置

CPUS =

Main Memory GB

Disk = TB

Users =

The DBA makes the following settings:

n PARALLEL_AUTOMATIC_TUNING = TRUE

n PARALLEL_MAX_SERVERS =

n PARALLEL_MIN_SERVER =

n LARGE_POOL_SIZE = MB

n SHARED_POOL_SIZE = MB

n PROCESSES =

n SESSIONS =

n TRANSACTIONS =

Parameter Settings for DOP and the Adaptive MultiUser 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;

上一篇:Oracle数据库备份与恢复精华资料集锦

下一篇:讲解Oracle在Solaris下的性能与调整