在OOW 2012上Tom kyte介绍了Oracle新一代重量级数据库产品12c 的12个新特性, 目前Open World 2012的主要PDF都可以下载了,传送门在此:Search Content Catalog for Oracle OpenWorld 2012 sessions

    Tom的《12 Things About The Latest Generation of Database Technology》下载地址。

     

    这里我们来领略下Tom眼中的12个特性增强:

    #1 Even better PL/SQL from SQL, 直接在SQL中嵌入PL/SQL对象并运行,猜测可能优化了SQL engine 和 PL/SQL engine 2种的代码引擎之间的交互,以获得比之前传统的SQL调用函数更少的上下文切换。

     

     

    #2 Improved Defaults 增强了DEFAULT, default目前可以直接指代sequence了,同时增强了default充当identity的能力

    • Default to a sequence
    • Default when null inserted
    • Identity Type
    • Metadata-only Defaults for NULL columns

     

    #3 Increased Size Limit for VARCHAR2, NVARCHAR2, and RAW Data Types

    Varchar2, NVarchar2 and Raw这些数据类型的大小上限可以扩展到32k,和其在PL/SQL中的变量类型一样了,当然过长可能导致像LOB那样OUT OF LINE存放

     

     

     

    #4 Easy Top-N and pagination queries ,更易用的Top-N和页码查询

    提供了类似MySQL中limit的语法,Row Limiting Clause

     

     

    FETCH FIRST 5 ROWS ONLY; ==》仅fetch前5行
    FETCH NEXT 0.01 PERCENT ROWS ONLY;  仅fetch 0.0.1%的行数

     

    #5 Row Pattern Matching 增强的行模式匹配

    提供了新的模式匹配子句 match_recognize,可以通过match_recognize 定义正则语法

     

    #6 Partitioning Improvements 分区特性增强 ,  包括异步维护全局索引的drop和truncate分区操作, 以及Interval + Reference分区方式

    • Asynchronous Global Index Maintenance for DROP and TRUNCATE
    • partition
    •  Cascade Functionality for TRUCATE and EXCHANGE partition
    • Multiple partition operations in a single DDL
    • Online move of a partition (without DBMS_REDEFINITION)
    • Interval + Reference partitioning

     

     

    #7 Adaptive  Execution Plans  自适应执行计划, 该特性可以谈得上神奇,最终的执行计划将基于执行中获得的行,列倾斜造成的问题将被克服

     

     

     

    #8 Enhanced  Statistics 统计信息增强, 加入了第11级的动态采样, 对于并行查询自动打开11级的动态采样,混合直方图

     

     

    #9 Temporary UNDO  临时UNDO撤销,临时表的UNDO数据可以放到TEMP中,有助于减少 UNDO表空间中的undo数据,进一步减少redo的产生, 从而使得Active Data Guard中的临时表允许做DML

    设置方法为:ALTER SYSTEM/SESSION SET TEMP_UNDO_ENABLED=true|false

     

     

    #10 Data Optimization 数据优化包括自动压缩和分层

     

    ALTER TABLE orders
    ILM ADD CompressionPolicy
    COMPRESS Partitions for Query
    AFTER 90 days from creation;

     

    ALTER TABLE sales
    ILM ADD MovePolicy
    TIER Partitions TO ‘Archive_TBS’
    ON OrdersClosedPolicy;

     

     

    #11 Application Continuity 应用持续性增强,  事务卫士(Transaction Guard)保证了解事务结果:

     

     

    #12 Pluggable Databases 可插入数据库:

    一个容器数据库(container database)中可以存放多个Pluggable Databases

    • 对于外部应用程序和开发者来说Pluggable Databases看上去就是一个普通的版本12.1之前的数据库
    • 用户连接到Pluggable Databases时看到的是一个单一数据库和从前一样

    新的管理模式

    • 数据库管理员DBA可以连接到Pluggable Database并仅仅管理该数据库
    • 超级DBA可以连接到容器数据库并如同管理单系统镜像那样管理
    • RAC中的每一个实例均打开容器数据库并可以选择打开哪些Pluggable Database

     

    内建的多分租(Multi-tenancy)

    • 每个Pluggable Database均独立于其他Pluggable Database
    • Resource Manager特性被扩展到Pluggable Database中

     

    Pluggable Databases特性可以带来的好处:

    • 加速重新部署现有的数据库到新的平台的速度
    • 加速现有数据库打补丁和升级的速度
    • 从原有的DBA的职责中分离部分责任到应用管理员
    • 集中式管理多个数据库
    • 提升RAC的扩展性和故障隔离
    • 与Oracle SQL Developer 和Oracle Enterprise Manager高度融合