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 条评论
登录 后参与评论

相关文章

来自专栏文渊之博

比较列存储索引与行索引

原因:     之前已经写过一篇关于列存储索引的简介https://cloud.tencent.com/developer/article/1032222,很粗...

1846
来自专栏林欣哲

MySQL数据库开发规范知识点速查

数据库设计规范 命名规范 基本设计规范 索引设计规范 字段设计规范 SQL开发规范 操作行为规范 命名规范 对象名称使用小写字母并用下划线分割 禁止使用MySQ...

33711
来自专栏python3

mysql-表的操作

数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎

501
来自专栏逸鹏说道

程序猿是如何解决SQLServer占CPU100%的

文章目录 遇到的问题 使用SQLServer Profiler监控数据库 SQL1:查找最新的30条告警事件 SQL2:获取当前的总报警记录数 有哪些SQL语句...

3068
来自专栏乐沙弥的世界

共享池中保留池的调整(shared_pool_reserved_size)

--*************************************************

591
来自专栏Java技术

MySQL开发规范与使用技巧总结

1.库名、表名、字段名必须使用小写字母,并采用下划线分割。 a)MySQL有配置参数lower_case_table_names,不可动态更改,Linux系统...

733
来自专栏沃趣科技

MySQL复制应用中继日志解析

一、从一张图开始 从一个大神那边得到一张图片,SQL线程应用中继日志流程,下面就实验验证一下:(PS,我个人认为这张图binlog_format为ROW格式是正...

4166
来自专栏Grace development

MySQL SQL模式特点汇总

MySQL服务器可以在不同的SQL模式下运行,并且可以针对不同的客户端以不同的方式应用这些模式,具体取决于sql_mode系统变量的值。DBA可以设置全局SQL...

242
来自专栏龙首琴剑庐

Mycat适配oracle,各种坑

注:文中使用版本为Mycat 1.6.5。 1、Mycat 正如官方所说, Mycat 是数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服务...

4576
来自专栏butterfly100

InnoDB锁机制

1. 锁类型 锁是数据库区别与文件系统的一个关键特性,锁机制用于管理对共享资源的并发访问。 InnoDB使用的锁类型,分别有: 共享锁(S)和排他锁(X) 意...

3325

扫描关注云+社区