eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

December 16, 2016

Oracle 数据库12.2新特性 - Big Data and Data Warehousing

10ChangeOracleDB.jpg

编辑手记:也许Oracle 12.2在内核上的智能改进只能让你眼前一亮,那今天基于Big Data和数据仓库的性能优化增强则会让你伸手触Oracle的强大灵魂。细腻中霸气侧漏,这就是Oracle 12.2. 本文译自Oracle官方文档,首发在『Oracle』微信公众号。

1.Partitioning:External Tables(外部表)

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

作用

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

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

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

作用

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

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

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

作用

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

4.Dimensional In-Database Analysis

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

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

CREATE ATTRIBUTE DIMENSION

CREATE HIERARCHY

CREATE ANALYTIC VIEW

及其相关的ALTER和DROP语句,新计算度量表达式语法和新数据字典视图。
  • 分析视图允许数据仓库和商业智能应用程序开发人员使用时间序列和其他计算来扩展星型模式,使数据对于业务用户更有价值,并且无需在应用程序中定义计算。

  • 可以使用简单的SQL查询来查询分析视图,从而通过消除对复杂SQL生成器的需求来简化应用程序开发。计算可以在分析视图中定义,可以通过在SQL选择列表中包括度量名称来选择。

  • 分析视图提高了应用程序的一致性。通过在数据库中集中定义聚合和计算规则,可以减少或消除不同报告工具中不一致结果的风险。

5.Enhancing 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计划管理提供的更高级的功能,例如计划演进。

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

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

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

7.Band Join Enhancements(带加入增强)

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

带连接优化案例

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

12cbig01.jpeg


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

12cbig02.png

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

12cbig03.png

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

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

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

递归with查询原理

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

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

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

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

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

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

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

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

  • 读/写实例是常规的Oracle数据库实例,可以处理对数据的更新(例如,DML语句UPDATE,DELETE,INSERT和MERGE),分区维护操作等。可以直接连接到读/写实例。

  • 只读实例只能处理查询,不能直接更新数据。不能直接连接到只读实例。请注意,存在包含更新和查询数据的并行SQL语句(例如,INSERT INTO部分在读/写和只读实例上处理,而INSERT部分仅在读/写实例上处理。

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

作用

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

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

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

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

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

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

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

Posted by eygle at 11:14 AM | Permalink | Oracle12c/11g (125)

December 12, 2016

2016中国软件大会:面向开发和DBA的Oracle 12.2新特性

EygleAtSoftCon.jpeg

在2016年12月10日的『中国软件大会上』,我分享了一个主题:《面向开发人员和DBA的Oracle 12c新特性》,从安全的主题开始,以在线变更为主线,分享了Oracle 12c的一些新特性,尤其是12.2的部分新特性。

在这个主题中,12.2 的 lockdown profile成为我的出发点,通过这一新的安全机制,Oracle 12c 的PDB权限得以被限制,可以防范PDB的高权限操作对全局产生影响。

122lockdownp2.jpg

而在12.2中PDB的Clone,可以在线进行,这是较12.1的又一大进步:

122onlineclone2.jpg

Oracle关于分区技术的一系列增强也尤为引人瞩目,这包括自动的列表分区、自动的分区表转换等。

12.2 中,可以通过DDL语句,在线的将非分区表转换为分区表,这大大简化了之前表分区的过程:

122partitiononline.jpg

在Oracle 12.2 中,很多标识符都被放大到128 Bytes的长度,请看以下测试,关键看内容:

122longidenti.jpg

在大会的最后,我还向大家分享了我们的一点小情怀,Bethune - 白求恩 这个词引起了大家广泛的兴趣,云和恩墨以白求恩为名创造了一款智能的数据库巡检平台,以SaaS模式为用户提供数据库体检服务,更重要的是这个平台是完全免费的。

大家可以在 https://bethune.enmotech.com 上注册试用我们的平台:

Bethune2saas.jpg

这个PPT我已经在百度云上分享出来,有兴趣的朋友可以在百度云下载:

https://pan.baidu.com/s/1o8CpZlg

Posted by eygle at 4:11 PM | Permalink | Oracle12c/11g (125)

Oracle 数据库 12.2新特性手册-Core Improvements内核卷

编辑手记:Oracle 12.2 在内核上有许多创造性的改进,这些改进让数据库的操作更加高效便捷,同时一些面向智能运维和大数据的改进,则迈出了云和大数据时代的重要一步。在今年的DB-Engines的评选中,Oracle位居榜首,而我们从12.2的这些更新中便知道,Oracle是DBMS当之无愧的领导者。

注:文章内容来自官方文档翻译。若需要了解更多,请查阅官方文档

10ChangeOracleDB.jpg

1、Partition-Specific Near Real-Time Indexes(近实时索引的配置)

12.2中可以在分区级别指定使用近实时索引的选项(STAGE_ITAB设置),频繁更新的分区可以启用接近实时的索引,而较少频繁更新的表可以关闭它。

当使用STAGE_ITAB索引选项创建CONTEXT索引时,将创建一个空的$ G表,其中包含$ H btree索引。 将g_index_clause子句与STAGE_ITAB索引选项结合使用可改善广泛用于DML操作的CONTEXT索引的SQL查询的性能。

并且在12.2中可以指定近实时$ G索引表的最大大小,若调整最大大小,会将更新写入主$ I表,指定最大大小可防止近实时$ G索引表过大而无法容纳到内存中。

2、Partitioning: Auto-List Partitioning(自动列表分区)

数据库会自动为表的每个不同分区键值创建一个单独的(新)分区。自动列表分区减少了DBA管理分区的负担,为需要单独分区的大量不同键值手动维护分区表列表。 它还自动处理未计划的分区键值,而不需要DEFAULT分区。

3、Adding New Document Formats(添加新的文档格式)

在12.2版本中,Oracle Outside-In Technology支持的格式可以使用AUTO_FILTER编制索引,新添加的格式也可以索引。


4、Structured/Sort Data (SDATA) Section Improvements

对SDATA节进行了以下改进:

  • B树支持的SDATA部分可进行范围搜索,以获得更好的性能。

  • SDATA可以针对SEARCH或SORT操作进行优化

  • 多值SDATA节 - 组数在结果集接口中的SDATA节上可用。

  • 这些SDATA改进在Oracle Text索引环境中提供更好的性能和更灵活的混合查询。

5、Availability of Updated Documents in Index(更新文档在索引中的可用性)

在早期版本中,当文档更新时,在索引同步之前,无法搜索它们

在12.2中,可以选择保留旧的甚至过期的索引条目,以便仍然可以从其原始内容中找到文档。

若对文档做小的改动,不必立即执行索引同步,仍然可以进行索引。

6、Read-Only MDATA Sections(只读MDATA段)

普通的MDATA段可以在不需要重新索引整个文档的情况下呗更新,但这样做会产生性能成本。

在12.2中,可以选择将MDATA段指定为read-only,这意味着它们只能在文档更新和索引同步时被更改。

此功能为查询提供更好的性能,因为不需要额外的游标来处理read-only MDATA段。 减少所需的光标数量也可以防止超过OPEN_CURSORS系统参数的限制。

7、 Sentiment Analysis and Collocates(情绪分析和搭配)

情绪分析?!

介个好像听起来很神奇的样子,是否很多人跟我一样第一次听说数据库还能实现这功能,一种被打脸的感觉。

Oracle文本支持情感分析和搭配。 情绪分析提供与搜索词相关联的积极和消极趋势的识别。与搜索术语相关联的积极或消极趋势的识别允许构建更丰富的搜索应用。

想了解更多的朋友看这里:

Oracle文本能够通过训练以识别情感元数据的情感分类器来对主题或文档执行情绪分析。

随着数据量的增加,如果组织能够获得对其数据的更多洞察,而不仅仅是响应于搜索查询获得"命中",这将会产生很大的价值。洞察可以是回答某些基本类型的查询(例如天气查询或关于最近事件的查询)或提供关于用户指定的主题的意见的形式。关键字搜索提供包含搜索字词的结果列表。但是,要识别关于搜索术语的情感或意见,则需要通过浏览所有结果,然后手动查找所需的情绪信息,进行进一步的数据分析。情绪分析提供一个一步过程来识别一组文档内的情感信息。

情感分析是从一组文档中识别和提取与指定主题或实体相关的情感元数据的过程。使用训练的情绪分类器来识别情绪。当使用情绪分析运行查询时,除了搜索结果之外,还标识和显示情绪元数据。情绪分析提供诸如"产品评论是肯定的还是否定的"或"客户满意还是不满意"的问题的答案。例如,从由针对特定产品的多个评论组成的文档集中,可以确定指示产品是好还是坏的整体情绪。

8、 Extracting Synonyms of Words in Documents(提取文档中单词的同义词)

CTX_DOC PL / SQL包中的TOKENS和POLICY_TOKENS函数现在允许指定同义词库名称,执行该操作,返回的结果包括文档中的实际词以及由指定的词库定义的那些词的所有同义词。

此功能为数据分析和数据挖掘软件提供了优势,因为可以处理文档中找到的单词的所有变体。

9、Changes to NDATA, NEAR2, and NESTED NEAR Query Operators(对NDATA,NEAR2和NESTED NEAR查询运算符的更改)

新的Oracle Text BESTMATCH查询运算符可以找到文档中的术语集合,即使这些术语不存在或以变体形式存在也是如此。

此功能可在未知精确查询字词时提高召回率。

10、Materialized Views: Refresh Statistics History(物化视图:刷新统计历史信息)

物化视图刷新统计信息可以以不同的粒度进行收集,以提供用于分析和报告的历史数据。

存储历史物化视图刷新统计信息可以深入了解物化视图生态系统(或单个特定物化视图)是如何演进的, 这些数据为历史分析和诊断提供了独特的见解。

11、Process Management(进程管理)

此功能通过预先创建过程资源来提高连接时间和并行处理时间。 管理员可以控制预先创建多少进程,以便新连接不必等待。 相反,进程可以使用预创建的进程资源,从而减少连接和并行处理时间。

此功能可提高用户连接的连接和故障转移时间,以及后台进程的进程生成时间。

12、Partitioning: Read-Only Partitions(只读分区)

分区和子分区可以单独设置为只读状态,这样将禁用这些只读分区和子分区上的DML操作,这是对现有只读表功能的扩展。

只读分区和子分区启用对DML活动的精细控制,这增强了分区表的数据管理功能。

13、Partitioning: Multi-Column List Partitioning(多列列表分区)

列表分区功能已扩展为启用多个分区键列。

使用多个列来定义列表分区表的分区标准,可使新类应用程序从分区中受益。

在Oracle12.2中,内核设计方面有很多重要的创新性改进,这些改进使得Oracle数据库的运维能够更好地应对大数据分析和各种智能管理。

更多新特性请登录官网学习。

欢迎加入『云和恩墨大讲堂』,参与我们的学习和讨论。
YhemTalk.jpeg

Posted by eygle at 9:29 AM | Permalink | Oracle12c/11g (125)

Oracle 12.2 新特性:Lockdown Profile 的多租户权限控制

122lockdown.jpg

在Oracle Database 12.2 中引入了lockdown profile的新特性,可以用于限制PDB中的某些操作,增强某些操作的安全性。

PDB Lockdown Profiles to Restrict Operations on PDBs Starting with this release, in a multitenant environment, you can use PDB lockdown profiles to restrict functionality available to users in a given PDB.

PDB lockdown profiles enable you to restrict the access the user has to a set of features individually or in a group. This feature is designed to enhance security for situations in which identities are shared among PDBs.

以下通过一个简单的测试来看看这个特性的基本功能。 首先在CDB下创建一个profile,这个Profile将对全局可用:

SQL> connect / as sysdba
Connected.
SQL> CREATE LOCKDOWN PROFILE enmotech;


Lockdown Profile created.

SQL> ALTER LOCKDOWN PROFILE enmotech DISABLE STATEMENT  = ('ALTER SYSTEM');

Lockdown Profile altered.


连接到PDB YHEM,在PDB级别启用lockdown profile :

SQL> connect sys/oracle@yhem as sysdba
Connected.
SQL> ALTER SYSTEM SET PDB_LOCKDOWN = enmotech;

System altered.


测试一下,可以看到所有的ALTER SYSTEM的操作都被禁用了:

SQL> alter system checkpoint;
alter system checkpoint
*
ERROR at line 1:
ORA-01031: insufficient privileges

SQL> alter system set optimizer_mode = first_rows_1;
alter system set optimizer_mode = first_rows_1
*
ERROR at line 1:
ORA-01031: insufficient privileges


LOCKDOWN PROFILE可以限制到非常细粒度的权限,比如以下限制仅仅限制用户执行ARCHIVE LOG和CHECKPOINT操作。

SQL> connect / as sysdba
Connected.

SQL> alter lockdown profile enmotech enable statement = ('ALTER SYSTEM')
  2  clause all except = ('ARCHIVE LOG', 'CHECKPOINT');

Lockdown Profile altered.


现在测试一下,可以看到在PDB上,限制精确的生效,CHECKPOINT操作不允许被执行:

SQL> connect system/oracle@yhem
Connected.
SQL> alter system set optimizer_mode = first_rows_1;

System altered.

SQL> alter system checkpoint;
alter system checkpoint
*
ERROR at line 1:
ORA-01031: insufficient privileges


除了特定的权限,还可以对某些数据库功能特点进行限制,比如调用和执行UTL_HTTP 和 UTL_TCP 包可能是高风险的,那么以下的PROFILE设置可以禁用这些特性:

SQL> alter lockdown profile enmotech
  2     disable feature = ('UTL_HTTP', 'UTL_TCP');
Lockdown profile altered.


SQL> conn system/oracle@yhem
Connected.
SQL> declare
  2    l_request   utl_http.req;
  3    l_response  utl_http.resp;
  4 begin
  5    l_request := utl_http.begin_request('http://www.enmotech.com');
  6    l_response := utl_http.get_response(l_request);
  7 end; 
  8/
declare
*
ERROR at line 1:
ORA-29273: HTTP request failed
ORA-01031: insufficient privileges
ORA-06512: at "SYS.UTL_HTTP", line 380
ORA-06512: at "SYS.UTL_HTTP", line 1127
ORA-06512: at line 5


参考链接:

https://docs.oracle.com/database/122/DBSEG/configuring-privilege-and-role-authorization.htm#DBSEG004

Posted by eygle at 9:04 AM | Permalink | Oracle12c/11g (125)

December 11, 2016

Oracle 数据库 12.2新特性手册 - In-Memory 增强卷

编辑手记 In-Memory 是 Oracle 在 12.1.0.2 中引入的新特性,旨在加速分析型 SQL 的速度。传统的 OLTP 应用通过 buffer cache 修改数据,分析性的 SQL 从 IM 列式存储中扫描数据,避免物理读成为性能瓶颈。那么在12.2最新版本中,In-Memory有哪些增强特性呢?我们一起来学习。

注:文章内容来自官方文档翻译。若需要了解更多,请查阅官方文档文中配图来自Oracle文档。

1、In-Memory Expressions(列式存储表达式)

内存中列存储允许以压缩的列格式将对象(表,分区和子分区)填充到内存中。 内存表达式使经常评估的查询表达式能够在内存中列存储中实现,以供后续重用。

将经常使用的查询表达式的实现值填充到内存中列存储中大大减少了执行查询所需的系统资源,并提供更高的可扩展性。

imo12201.jpeg

2、In-Memory Virtual Columns(虚拟列)

内存虚拟列使表的某些或所有用户定义的虚拟列能够将其值实现(预先计算)并填充到内存中列存储以及该表的所有非虚拟列。

将用户定义的虚拟列的值实现到内存中列存储可以通过使用内存中技术(例如SIMD(单指令,多数据)向量处理)来扫描和过滤虚拟列值,从而大大提高查询性能, 就像一个非虚拟列。

3、In-Memory FastStart(列式存储快速启动)

内存列存储允许以压缩的柱形格式在内存中填充对象(例如表、分区和子分区)。 到目前为止,柱形格式只能在内存中使用。 这意味着在数据库重新启动后,必须使用多步骤过程从头开始填充内存中列存储,该过程将传统的行格式化数据转换为压缩的列格式并放入内存中。

内存中快速启动使数据以比以前更快的速度重新填充到内存中列存储中,方法是以压缩的柱形格式保存磁盘上内存列存储中当前填充的数据副本。

imo12202.png

内存中的FastStart主要减少了系统重新启动后将数据重新填充到内存中列存储所需的时间。 这允许企业开始利用分析查询的性能优势,比以前更快地以柱形格式访问数据。

4、Automatic Data Optimization Support for In-Memory Column Store(列式存储自动数据优化支持)

自动数据优化(ADO)可实现信息生命周期管理(ILM)任务的自动化。 ADO的自动功能取决于热图功能,它在行级(聚合到块级统计)和段级跟踪访问。 最初,ADO支持使用在段或表空间级别定义的策略进行压缩分层和存储分层。 ADO支持现在已经扩展到包括内存中列存储。 ADO通过基于热图统计将对象(表,分区或子分区)移入和移出内存来管理内存中列存储。对内存中列存储的ADO支持可确保基于热图统计信息最优化使用内存中列存储。

由于内存中列存储是从系统全局区域(SGA)分配的,它使用主内存,主内存资源有限并且昂贵。 ADO确保只使用用户定义的策略在内存中列存储中填充最佳候选对象,提供了最佳性能,而不需要DBA经常干预手动管理内存中列存储的内容。

5、Join Groups(组连接)

填充到内存中列存储中的数据使用许多不同的编码技术进行压缩。 如果在连接中一起使用的两个列使用不同的技术编码,则必须解压缩这两个列以执行连接。 连接组允许用户指定哪些列用于跨表的连接,因此这些列始终可以使用相同的编码技术进行压缩。

imo12203.png

在使用相同技术编码的连接中一起使用的列使得能够进行连接,而不必通过提高连接的效率来解压缩列。

6、Expression Tracking(表达式跟踪)

SQL语句通常包括诸如"+"或" - "的表达式。 更复杂的示例包括PL / SQL函数或SQL函数,如LTRIM和TO_NUMBER。 存储库维护在编译期间识别并在执行期间捕获的相关表达式的使用信息。 涉及多个列或函数的复杂表达式造成难以精确地估计优化器中的选择性,从而导致次优计划。 通过表达式跟踪,处理有关表达式及其用法的更多信息对于建立更好的查询执行计划很有用。

7、Oracle Database In-Memory Support on Oracle Active Data Guard(Oracle ADG上的列式存储支持)

Oracle Active Data Guard允许以只读模式打开standby数据库。 此功能使企业能够将生产报告工作负载从primary数据库卸载到同步standby数据库。 因此,现在可以在Oracle Active Data Guard standby数据库上使用内存中列存储。 这使得standby 数据库上处理的报告工作负载能够利用在存储器中以压缩柱状格式访问数据。 这也使扫描、联接和聚合的执行速度比传统磁盘格式的快。

还可以在primary数据库和standby数据库上的内存中列存储中填充完全不同的数据集,从而有效地将应用程序可用的内存中列存储的大小增加一倍。

通过启用在Oracle Active Data Guard standby数据库上运行的报告工作负载来使用内存中列存储,可以极大地提高工作负载的执行性能。 这是因为处理可以充分利用在存储器中以压缩柱形格式访问数据。


8、In-Memory Column Store Dynamic Resizing(列式存储自动调整列大小)

假设SGA中有足够的内存可用,就可以在数据库打开时动态增加内存区域的大小,可以调整内存中列存储的大小,而无需重新启动数据库。

欢迎加入『云和恩墨大讲堂』,参与我们的学习和讨论。
YhemTalk.jpeg

Posted by eygle at 8:21 AM | Permalink | Oracle12c/11g (125)

近期发表

  • Oracle 12.2 新特性:自动列表分区(Auto-List Partitioning) - December 10, 2016
  • 《Oracle性能优化与诊断案例精选》一书出版 - December 9, 2016
  • Oracle 数据库 12.2新特性手册 - 可用性卷(Availability) - December 9, 2016
  • Oracle 12c 多租户:未完成事务的隐式提交(commit) - December 9, 2016
  • Oracle 12.2 新特性:在线PDB数据库克隆(Pluggable Hot Clone) - December 8, 2016
  • Oracle 12c 新特性: 多租户 PDB 的克隆与维护 - December 8, 2016
  • Oracle 12c:多租户数据库克隆 ORA-01276 错误处理一例 - December 6, 2016
  • Oracle 12c多租户新特性:Common用户和Local用户的管理 - December 2, 2016
  • Oracle 12c 多租户:PDB 支持 abort 关闭么? - December 1, 2016
  • 关于ORA-20315数据库攻击事件的核心 AfterConnect.sql - November 16, 2016


  • CopyRight © 2004 ~ 2012 eygle.com, All rights reserved.