OLAP建表提速70%-Oracle并行处理

作者: HBLong | 来源:发表于2017-06-18 16:22 被阅读39次
场景描述:

上周在开发一个报表项目时遇到了一个建表效率的问题。为了优化某个维度的报表查询速度,我们专门将生产系统的相关维度的几张表整合成一张。而实际需求就是要从生产库同步那几张表数据回来并处理成这一张表。

由于这个表的建立需要关联好几张无索引的十万级数据表,因此速度特别慢,当时实际跑了将近40分钟,在建立了索引之后,速度仍然没有很大的提升。

解决方案:

通过很多次尝试和摸索之后,我们使用了Oracle并行处理技术,相关的操作语句是这样子的。

create table table_name nologging parallel(degree 8) AS 
SELECT
...
... 
实际效果:

在开了8个并行度的、无归档日志生成的模式之后,建表时间仅花了12分钟。

原理分析:

并行处理就是将一个大的数据处理分割成很多块,然后依次分配给指定的并行进程,处理完毕之后再合并结果集给用户。

应用场景分析:

于是乎,分析一下为什么并行处理和无归档日志生成适用于我们的使用场景。

首先,我们这张大表仅用于查询,通过每天同步过来的数据来生成,因此,不涉及备份,只要生产库不炸就行,因此也就不需要归档日志了。

其次,同步与建表时间是在深夜,这时候系统资源是特别充足的,所以可以通过消耗更多的系统资源来提速。

那么,归纳起来就是说,Oracle并行处理适用于处理以下场景:

  • 无索引或者数据量大,可分块处理的
  • 有足够的系统资源,且并发量很小

深入了解请点击Oracle 并行parallel使用案例

相关文章

  • OLAP建表提速70%-Oracle并行处理

    场景描述: 上周在开发一个报表项目时遇到了一个建表效率的问题。为了优化某个维度的报表查询速度,我们专门将生产系统的...

  • oracle并行建索引

    我们创建索引的时候,可以启用并行,来加快速度,例如: 访问有并行度的索引时,CBO可能可能会考虑并行执行,这可能会...

  • Oracle建表

    1. //创建临时表空间 create temporary tablespace datawsyj_temp te...

  • 大数据OLAP框架对比

    大数据OLAP常用的技术 大规模并行处理:可以通过增加机器的方式来扩容处理速度,在相同的时间里处理更多的数据。 列...

  • 数据库面试

    数据库方向 oracle 1.oracle分页是如何实现的 Oracle中的表,除了我们建表时设计的各个字段,...

  • Oracle 建库语句

    摘要 Oracle 建库语句。 Oracle 建库共分为四步 第1步:创建临时表空间 第2步:创建数据表空间 第3...

  • oracle初探

    oracle以DBA形式登录 [Oracle创建用户、角色、授权、建表] oracle数据库的权限系统分为系统权限...

  • Oracle遇到的一系列问题汇总

    1、oracle建表 (先建表空间-》再建用户同时和表空间联系到一起-》授权DBA) 在创建好数据实例(数据库...

  • Oracle - start with connect by 树

    Oracle - start with connect by 树操作 准备工作:建表、插数据 表数据概况、B-Tr...

  • 大数据开发:OLAP分析引擎Apache Kylin入门

    在OLAP分析引擎领域,Apache Kylin可以说是一个重要的成员,相比于大规模并行处理指导思想下的Hive、...

网友评论

    本文标题:OLAP建表提速70%-Oracle并行处理

    本文链接:https://www.haomeiwen.com/subject/asoiqxtx.html