`
liwenshui322
  • 浏览: 519057 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle 并行查询

 
阅读更多

  并行查询允许将一个SQL SELECT语句划分为多个较小的查询,每个部分的查询并发地运行,然后会将各个部分的结果组合起来,提供最终的答案。

 

      我们来看一个例子:

 

      1. 执行如下一串SQL语句,创建一个叫big_table的表,期间会让你录入 1的值(想要往big_table表里面插入多少行数据),我录入的是1000万行。

 

create table big_table
as
select rownum id, a.*
from all_objects a
where 1=0
/

alter table big_table nologging;

declare
l_cnt number;
l_rows number := &1;
begin
insert /*+ append */
into big_table
select rownum, a.*
from all_objects a;
l_cnt := sql%rowcount;
commit;
while (l_cnt < l_rows)
loop
insert /*+ APPEND */ into big_table
select rownum+l_cnt,
OWNER, OBJECT_NAME, SUBOBJECT_NAME,
OBJECT_ID, DATA_OBJECT_ID,
OBJECT_TYPE, CREATED, LAST_DDL_TIME,
TIMESTAMP, STATUS, TEMPORARY,
GENERATED, SECONDARY
from big_table
where rownum <= l_rows-l_cnt;
l_cnt := l_cnt + sql%rowcount;
commit;
end loop;
end;
/

alter table big_table add constraint
big_table_pk primary key(id)
/

begin
dbms_stats.gather_table_stats
( ownname => user,
tabname => 'BIG_TABLE',
method_opt => 'for all indexed columns',
cascade => TRUE );
end;
/

select count(*) from big_table;

 

    2. 查询 非并行执行态,select count(status) from big_table 所耗用时间。

 

explain plan for
 select count(status) from big_table;
select * from table(dbms_xplan.display);

    我电脑上的执行结果如下图所示,耗用时间是6分半钟。  


 

 

    3.  修改表允许并行执行,重新执行解析计划 

 

alter table big_table parallel;

explain plan for
 select count(status) from big_table;
select * from table(dbms_xplan.display); 

    我电脑上的执行结果如下图所示,耗时140  


   

 

    如果自下而上地读这个计划(从ID=6开始),它显示了并行执行的具体步骤。全表扫描会分解为多个较小的扫描(第5步)。每个扫描汇总其COUNT(STATUS)值(第4步)。这些子结果将传送给并行查询协调器(第2步和第3步),它会进一步汇总这些结果(第1步),并输出答案。

 

 

 

 

  • 大小: 11.8 KB
  • 大小: 14.7 KB
2
1
分享到:
评论

相关推荐

    oracle并行查询优化

    ### Oracle并行查询优化 #### 一、引言 在Oracle数据库系统中,并行查询(Parallel Query, PQ)是一项强大的特性,它通过将查询任务分解为多个子任务并行执行来提升性能。然而,并行查询并非总是能带来性能提升,...

    用Oracle并行查询发挥多CPU的威力

    Oracle并行查询(OPQ)是Oracle数据库系统中一项强大的特性,它利用现代硬件的多处理器能力,显著提升大规模数据操作的效率。随着硬件的进步,尤其是对称多处理(SMP)服务器的普及,Oracle从Oracle8i版本开始在各个...

    用Oracle并行查询发挥多CPU的威力定义.pdf

    Oracle并行查询(OPQ)是Oracle数据库系统中一种强大的特性,旨在利用多CPU系统的能力,提高查询性能和响应时间。随着硬件的发展,服务器经常配备8个、16个甚至32个CPU,Oracle数据库也相应地实现了并行性功能。自...

    Oracle并行查询

    Oracle并行查询是Oracle数据库系统中的一个重要特性,它允许数据库以多线程或多进程的方式执行复杂的SQL查询,从而充分利用多核CPU的计算能力,显著提高数据处理速度。在大规模数据仓库和高性能计算环境中,这种并行...

    Oracle数据库并行查询出错的解决方法

    Oracle的并行查询是使用多个操作系统级别的Server Process来同时完成一个SQL查询,本文讲解Oracle数据库并行查询出错的解决方法如下: 1、错误描述 ORA-12801: 并行查询服务器P007中发出错误信号 ORA-01722:无效...

    Oracle并行执行

    ### Oracle并行执行详解 #### 一、引言 在现代数据库系统中,为了提高查询性能,Oracle数据库引入了并行执行技术。该技术通过利用多处理器或多核心的优势,将复杂的查询任务分解成多个子任务并行处理,从而显著...

    Oracle Parallel 并行处理

    Oracle并行处理是Oracle企业版提供的一项强大功能,它允许将SQL语句的处理任务分配给多个处理器或处理器核心以及多个磁盘设备,从而充分利用现代多核处理器和分布式存储系统的能力。在多核架构和多磁盘设备环境下,...

    ORACLE并行SQL指南

    ### Oracle并行SQL指南 #### 一、理解并行SQL的概念 在Oracle数据库中,并行SQL(Parallel SQL)是一种能够显著提升SQL语句执行效率的技术。传统的串行SQL执行方式中,一个会话只能利用一个CPU核心或者一个磁盘...

    在双机集群环境下Oracle并行服务的实现分析.pdf

    ### 在双机集群环境下Oracle并行服务的实现分析 #### 概述 随着信息技术的不断发展,企业对于数据处理能力和系统稳定性的要求越来越高。传统的单机架构已经难以满足这种需求,因此,集群技术应运而生。本文主要探讨...

    oracle并行

    ### Oracle并行执行基础 #### 并行执行概念 并行执行是数据库处理技术中的一个核心组成部分,尤其在处理大规模数据集时尤为重要。通过利用多个处理器或进程来完成单一任务,能够显著提升查询效率和整体性能。对于...

    oracle的Parallel_并行技术案例详解

    并行查询是指将一个 SQL Select 语句分解成多个较小的查询,每个部分的查询并发地运行,然后将各个部分的结果组合起来,提供最终的结果。并行查询通常用于全表扫描、索引全扫描、大表的扫描和连接、创建大的索引、...

    讲解Oracle中并行处理技术原理

    并行处理就是利用多个CPU和I/O资源来执行单个数据库操作。尽管现在每个主要的数据库供应商都声称可以提供并行处理能力,但每个供应商所提供的体系结构...本文还讲述Oracle并行处理组件与其它关键业务组件的无缝集成。

    Oracle并行处理和多处理器计算机体系结构介绍

    并行查询选件是Oracle并行处理的另一个重要方面,它优化了复杂的SQL查询。在并行查询中,大型的SELECT语句会被分解为多个小任务,分配给多个处理器或服务器节点执行。这些节点同时工作,各自处理部分数据,然后将...

    Oracle并行度.docx

    Oracle并行度主要分为以下几类: 1. **并行查询(Parallel Query)**:并行查询将大型SQL SELECT语句分割成多个子查询,这些子查询同时执行,然后合并结果。这在全表扫描、索引全扫描、大表连接、创建大索引、分区...

    oracle线程测试

    四、Oracle并行查询 并行查询(Parallel Query)是Oracle的重要特性,它将大的SELECT操作分割成小的子任务,由多个并行服务器进程执行。在测试中,我们需要考虑如何平衡查询的并行度、I/O负载、网络通信等因素,以...

    Oracle并行操作之并行查询实例解析

    除了并行查询,Oracle还支持其他类型的并行操作,如并行DML(Parallel DML),用于加速插入、更新和删除操作;并行DDL(Parallel DDL),用于快速创建大表或重建索引;并行恢复(Parallel Recovery),在数据库恢复...

    SQL Server和Oracle并行处理比较分析

    【SQL Server和Oracle并行处理比较分析】 在数据库系统中,数据一致性是核心问题之一,尤其是在高并发的环境中。SQL Server和Oracle作为两大主流的关系型数据库管理系统,它们各自采用了独特的并行处理策略来应对这...

    ORACLE数据库优化之SQL语句的并行处理.pdf

    ### ORACLE数据库优化之SQL语句的并行处理 #### SQL语句并行处理的重要性与优势 在现代信息系统的高效...通过细致的规划和优化,可以最大化地发挥Oracle数据库的并行处理能力,为用户提供更加快速、稳定的查询体验。

    ORACLE并行技术在计费账务系统中的应用探讨.pdf

    "ORACLE并行技术在计费账务系统中的应用探讨" ORACLE并行技术是当前数据库技术发展的热点之一,它可以大大提高数据库的处理能力和可扩展性。在计费账务系统中,ORACLE并行技术的应用可以极大地提高系统的性能和可靠...

Global site tag (gtag.js) - Google Analytics