Oracle 12.2新特性掌上手册 - 第七卷 Big Data and Data Warehousing

编辑手记:也许Oracle 12.2在内核上的智能改进只能让你眼前一亮,那今天基于Big Data和数据仓库的性能优化增强则会让你伸手触Oracle的强大灵魂。细腻中霸气侧漏,这就是Oracle 12.2.

1Partitioning:External Tables(外部表)

外部分区表提供了将分区的Hive表映射到Oracle数据库生态系统以及在基于Hadoop分布式文件系统(HDFS)的数据存储之上提供声明分区的功能。

作用

Oracle数据库基于外部HDFS的数据存储功能,使得数据库分区能够实现更高级别的查询性能和增强的数据维护。

2Enhancing Declarative Constraint Support(增强声明约束支持)

在内部和外部表上定义为声明性和非强制性的约束更全面地用于查询处理优化,同时增加了内部和外部表的声明性NOT NULL约束以及外部表的所有声明性约束(唯一性,主键和主键 - 外键关系)的支持。

作用

允许外部数据的声明性约束定义有助于提高查询性能,同时优化任何复杂SQL操作的资源消耗,而不管数据是否驻留在数据库内。

3Oracle Parallel Query Services on Oracle RAC Read-Only Nodes(Oracle RAC只读节点上的Oracle并行查询服务)

Oracle RAC只读节点上的Oracle并行查询服务表示可扩展的并行数据处理体系结构。 该架构允许分配专用于并行执行查询的大量处理引擎。

作用

Oracle并行处理服务器场允许用户在大型集群系统上部署可扩展的处理架构,专门用于并行查询操作。

4Dimensional In-Database Analysis

分析视图通过星型模式提供商业智能层,从而可以轻松地使用层次结构、级别、聚合数据和计算的度量扩展数据集。

分析视图功能包括新的DDL语句

CREATE ATTRIBUTE DIMENSION CREATE HIERARCHY CREATE ANALYTIC VIEW

及其相关的ALTER和DROP语句,新计算度量表达式语法和新数据字典视图。

  • 分析视图允许数据仓库和商业智能应用程序开发人员使用时间序列和其他计算来扩展星型模式,使数据对于业务用户更有价值,并且无需在应用程序中定义计算。
  • 可以使用简单的SQL查询来查询分析视图,从而通过消除对复杂SQL生成器的需求来简化应用程序开发。计算可以在分析视图中定义,可以通过在SQL选择列表中包括度量名称来选择。
  • 分析视图提高了应用程序的一致性。通过在数据库中集中定义聚合和计算规则,可以减少或消除不同报告工具中不一致结果的风险。

5Enhancing SQL Plan Management(增强SQL执行计划管理)

SQL执行计划管理(SPM)利用更大的计划信息池(包括自动工作负载存储库(AWR))作为SQL计划基准的源。 SPM还得到增强,为客户提供更具选择性的计划捕获和更容易的验证。客户可以利用SQL计划管理来满足其特定的应用程序需求。

获取执行计划的方式:

AWR

从自动工作负载存储库(AWR)快照加载计划。您必须指定快照范围的开始和结束。或者,您可以应用过滤器以仅装入满足指定条件的计划。默认情况下,优化程序在下次数据库执行SQL语句时使用加载的计划。

共享SQL区域

直接从位于SGA的共享池中的共享SQL区域加载语句的计划。通过对模块名称,模式或SQL ID应用过滤器,可以标识要捕获的SQL语句或SQL语句集。下次数据库执行SQL语句时,优化程序将使用这些计划。

当使用提示手动调整应用程序SQL时,直接从共享SQL区域装载计划很有用。因为您可能无法更改SQL以包括提示,填充SQL计划基线可确保应用程序SQL使用最佳计划。

SQL调优集(STS)

将SQL工作负载的计划捕获到STS中,然后将计划加载到SQL计划基准中。下次数据库执行SQL语句时,优化程序将使用这些计划。从STS批量装载执行计划是防止数据库升级后计划回退的有效方法。

暂存表

使用DBMS_SPM软件包定义登台表DBMS_SPM.PACK_STGTAB_BASELINE以将基准复制到登台表中,并使用Oracle数据泵将表转移到另一个数据库。在目标数据库上,使用DBMS_SPM.UNPACK_STGTAB_BASELINE从暂存表中解压缩计划,并将基准放入SMB。

一个用例是从新的应用程序模块向数据库中引入新的SQL语句。供应商可以使用SQL计划基准为新的SQL运送应用程序软件。以这种方式,新SQL使用已知的计划,以在标准测试配置下提供最佳性能。或者,如果您在内部开发或测试应用程序,请从测试数据库导出正确的计划并将其导入生产数据库。

存储的大纲

将存储的大纲迁移到SQL计划基准。迁移后,您可以使用存储的概要保持相同的计划稳定性,同时可以使用SQL计划管理提供的更高级的功能,例如计划演进。

6Scan Rate and In-Memory Columnar Statistics(扫描速率和内存中列的统计)

DBMS_STATS现在支持外部表扫描速率和内存列存储(IM列存储)统计。

如果数据库使用内存中列存储,则可以将im_imcu_count设置为表或分区中的内存压缩单元(IMCU)的数量,并将im_block_count设置为表或分区中的块数。 对于外部表,扫描速率指定以MB /秒为单位扫描数据的速率。

7Band Join Enhancements(带加入增强)

带连接是一种特殊类型的非连字符,其中一个数据集中的键值必须落在第二数据集的指定范围(也就是“带”)内。 当数据库检测到带连接时,数据库更有效地评估带连接的成本,避免不必要的扫描落在定义的带外的行。在大多数情况下,优化的性能与等值连接的效果差不多。

带连接优化案例

以下示例查询每个员工与其他员工相比,工资差距范围在$100之间的。 因此,带具有$ 200的宽度。 这些例子假设可以比较每个雇员的工资与自己的工资。 以下查询包括部分样本输出:

在不使用带连接优化的时候,执行计划如下:

使用带连接的执行计划如下:

我们看到,在12.2中,不再具有单独的filter的操作。

8Parallel Recursive WITH Enhancements(并行递归WITH增强)

Oracle数据库通过使用专有CONNECT BY子句和符合ANSI标准的递归WITH子句来支持递归查询。并行递归WITH子句允许此类型的查询以并行方式运行。

递归with查询原理

递归WITH类型查询是典型的在社交图中找到的图形数据,例如Twitter图形或通话记录。递归WITH类型查询也常用于交通网络(例如,用于飞行路径,道路等)。图形数据本质上是循环的,因此,递归查询是图形数据的分析处理的自然候选者。递归WITH确保在图中从单个源节点到单个或多个目的地节点的最短路径的有效计算。双向搜索用于确保从图形中从单个源节点到单个或多个目的地节点的最短路径的有效计算。双向搜索从源节点和目的地节点开始,然后在两个方向上前进搜索。实现诸如贪婪搜索,无中断中间路径的修剪和双向搜索的技术以优化性能。

9Cursor-Duration Temporary Tables Cached in Memory(游标持续时间临时表在内存中缓存)

复杂查询通常会多次处理相同的SQL片段(查询块)以回答业务问题。 这些查询的结果可以在内部存储,以避免对同一查询片段进行多重处理,实现为光标持续时间临时表。 使用这个新功能,这些临时表可以完全驻留在缓存中,而无需将它们写入磁盘。

对于部分较复杂的关键操作,缓存中间结果集有助于提高系统性能,降低I/O资源消耗

10Local TEMP Tablespaces(本地临时表空间)

hub-leaf cluster 环境中的单个叶节点可能溢出到本地TEMP表空间。此功能减少了传输到hub nodes和公共基础架构的数据量,为大量节点实现更好的可扩展性。

11Oracle Database Can Contain Both Read/Write and Read-Only Instances(Oracle数据库可以包含读取/写入和只读实例)

Oracle 12.2在同一数据库中提供两种类型的实例:读/写和只读。

  • 读/写实例是常规的Oracle数据库实例,可以处理对数据的更新(例如,DML语句UPDATE,DELETE,INSERT和MERGE),分区维护操作等。可以直接连接到读/写实例。
  • 只读实例只能处理查询,不能直接更新数据。不能直接连接到只读实例。请注意,存在包含更新和查询数据的并行SQL语句(例如,INSERT INTO <select query>)。在这种情况下,语句的<select query>部分在读/写和只读实例上处理,而INSERT部分仅在读/写实例上处理。

要将实例指定为只读,请将INSTANCE_MODE参数设置为READ_ONLY。 (参数的默认值为READ_WRITE。)

作用

只读实例的引入显着提高了数据仓库工作负载的并行查询的可扩展性,并允许Oracle数据库在数百个物理节点上运行。

12Oracle Advanced Analytics Association Rules Enhancements(Oracle高级分析关联规则增强)

Oracle Advanced Analytics关联规则算法有许多增强功能,包括计算与规则相关联的值,例如销售额。

收集关联规则的补充信息可以帮助识别每个规则对业务的价值是有价值的。 此功能使Oracle Advanced Analytics在构建模型时执行此类计算,这比要求作为后处理步骤执行此计算更简单和更高效。

13Improving Token Management for Binary XML(改进二进制XML的令牌管理)

此功能通过允许以比数据库更低的粒度级别管理令牌表来提高基于客户端的XML编码和解码的效率。 这使得可传输表空间和交换分区等操作更有效率。

通过减少在编码和解码操作期间需要重新加载的令牌的更改,提高了客户端编码和解码二进制XML的效率。 此功能还使得可以使用可传输表空间执行交换分区操作,而不需要重新编码移动的XML。

Oracle 12.2新特性掌上手册系列

第一卷 Availability

第二卷 In-Memory的增强

第三卷 Core Improvements

第四卷 Sharding

第五卷 RAC and Grid

第六卷 ADG的性能与诊断

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2016-12-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏草根专栏

Entity Framework Core 2.1,添加种子数据

EFCore 2.1出来有一段时间了,里面的新功能还没怎么用,今天研究下如何使用EF Core 2.1添加种子数据。

1711
来自专栏Hadoop数据仓库

HAWQ技术解析(十二) —— 查询优化

        即便对SELECT等数据库查询语句已经很熟悉了,但HAWQ里的查询有其自己的特点,还是需要研究一下。 一、HAWQ的查询处理流程        ...

6726
来自专栏数据和云

深入剖析:关于cache buffers chains的经典案例处理详解

? 卢文星 目前就职云和恩墨,南区交付工程师,有超过8年超大型数据库管理经验,擅长Oracle数据库性能优化与升级迁移。 作者介绍 故障现象 某省税务核心业务...

2846
来自专栏数据和云

经典故障分析 - ASSM引发的索引争用与 enq HW -contention 等待事件

作者介绍: 孙加鹏 云和恩墨技术顾问 六年Oracle技术顾问经验,所服务的行业包括电信运营商、金融业、制造业等。 擅长Oracle的故障诊断、高可用架构、升级...

3084
来自专栏维C果糖

史上最简单的 MySQL 教程(二)「关系型数据库」

关系型数据库,是一种建立在关系模型(数学模型)上的数据库。

4359
来自专栏友弟技术工作室

Mysql大表优化方案

除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是...

4897
来自专栏性能与架构

Kafka 流数据 SQL 引擎 -- KSQL

KSQL 是什么? KSQL 是一个 Kafka 的 SQL 引擎,可以让我们在流数据上持续执行 SQL 查询 例如,有一个用户点击流的topic,和一个可持续...

4526
来自专栏用户画像

mysql模拟题三

  9、找回mysql服务器root密码的很重要的一步是跳过权限表的检查启动mysql,该命令是(D)(2分)

1322
来自专栏数据和云

经典案例:如何优化Oracle使用DBlink的SQL语句

作者介绍 赵全文 就职于太极计算机股份有限公司,在中央电化教育馆做Oracle DBA的驻场运维工作。具有3年左右的Oracle工作经验,目前擅长Oracle数...

4539
来自专栏PHP在线

WordPress的可拓展性初探(一)

作者:西瓜玩偶(racnil070512 at hotmail dot com) WordPress是一个时下非常流行的网络信息发布平台,它的特性之一便是极强...

3049

扫码关注云+社区

领取腾讯云代金券