1. 相同字段上的多重索引
   在Oracle 12c R1之前,一个字段是无法以任何形式拥有多个索引的。或许有人会想知道为什么通常一个字段需要有多重索引,事实上需要多重索引的字段或字段集合是很多的。在12c R1中,只要索引类型的形式不同,一个字段就可以包含在一个B-tree索引中,同样也可以包含在Bitmap索引中。注意,只有一种类型的索引是在给定时间可见可用的。

SQL>create table more_ind as select * from user_objects;
Table created.
SQL> create index ind_one on more_ind(object_id);
Index created.
SQL> create index ind_two on more_ind(object_id);                          
ORA-01408: such column list already indexed
SQL> create bitmap index ind_two on more_ind(object_id);
ORA-01408: such column list already indexed
SQL> create bitmap index ind_two on more_ind(object_id) invisible;
Index created.

2. ddl 日志
在之前的版本中没有可选方法来对DDL操作进行日志记录。而在12c R1中,你现在可以将DDL操作写入xml和日志文件中。这对于了解谁在什么时间执行了create或drop命令是十分有用的。要开启这一功能必须对ENABLE_DDL_LOGGING 初始参数加以配置。这一参数可以在数据库或会话级加以设置。当此参数为启用状态,所有的DDL命令会记录在$ORACLE_BASE/diag/rdbms/DBNAME/log|ddl 路径下的xml和日志文件中。一个xml中包含DDL命令,IP地址,时间戳等信息。这可以帮助确定在什么时候对用户或表进行了删除亦或是一条DDL语句在何时触发。

SQL> ALTER SYSTEM|SESSION SET ENABLE_DDL_LOGGING=TRUE;

alter system set enable_ddl_logging=true;

以下的DDL语句可能会记录在xml或日志文件中:

CREATE|ALTER|DROP|TRUNCATE TABLE

DROP USER

CREATE|ALTER|DROP PACKAGE|FUNCTION|VIEW|SYNONYM|SEQUENC

实验:
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL> alter system  set enable_ddl_logging=true;

System altered.
SQL> truncate table select_top;

Table truncated.

[oracle@12c01 ddl]$ pwd
/home/oracle/app/oracle/diag/rdbms/andycdb/andycdb/log/ddl
[oracle@12c01 ddl]$ ll
total 4
-rw-r-----. 1 oracle oinstall 308 May  7 21:28 log.xml
[oracle@12c01 ddl]$ cat log.xml 
<msg time='2017-05-07T21:28:36.028+08:00' org_id='oracle' comp_id='rdbms'
 msg_id='opiexe:4695:2946163730' type='UNKNOWN' group='diag_adl'
 level='16' host_id='12c01' host_addr='10.100.25.16'
 pid='8858' version='1' con_uid='1'
 con_id='1' con_name='CDB$ROOT'>
 <txt>truncate table select_top
 </txt>
</msg>

3. 限制PGA的大小
在Oracle 12c R1之前,没有选项可以用来限制和控制PGA的大小。虽然你设置某个大小为PGA_AGGREGATE_TARGET 的初始参数,Oracle会根据工作负载和需求来动态地增大或减小PGA的大小。而在12c中,你可以通过开启自动PGA管理来对PGA设定硬性限制,这需要对PGA_AGGREGATE_LIMIT 参数进行设置。因此,你现在可以通过设置新的参数来对PGA设定硬性限制以避免过度使用PGA。
SQL> ALTER SYSTEM SET PGA_AGGREGATE_LIMIT=2G; 
SQL> ALTER SYSTEM SET PGA_AGGREGATE_LIMIT=0; --disables the hard limit  
提示:当超过了当前PGA的限制,Oracle会自动终止/中止会话或进程以保持最合适的PGA内存。

4. 分页查询
   在12c之前,只能通过一些间接手段来获取前N行的结果,如:rownum。在12c中,通过FETCH FIRST|NEXT|PERCENT可以直接得到top_n。
11g中分页查询示范:
select * 
from(select a.*,rownum rn 
     from emp a
     where rownum<=10) 
where rn>=5 ;

12c:
1.准备实验环境
create table select_top (id int);
insert into select_top values(1);
insert into select_top values(2);
insert into select_top values(3);
insert into select_top values(4);
insert into select_top values(5);
insert into select_top values(6);
insert into select_top values(7);
insert into select_top values(8);
insert into select_top values(9);
insert into select_top values(5);
insert into select_top values(10);

SQL> select * from select_top;

ID
----------
1
2
3
4
5
6
7
8
9
5
        10

11 rows selected.
2. 取id数字大小为前5的记录
模式一:重复记录只显示一次
SQL> select id from select_top order by id fetch first 5 rows only;

ID
----------
1
2
3
4
5

模式二:重复记录显示多次
SQL> select id from select_top order by id fetch first 5 rows with ties;

ID
----------
1
2
3
4
5
5

6 rows selected.
3. 跳过前五条记录,返回后五条记录
SQL> select id from select_top order by id offset 5 rows fetch next 5 rows only;

ID
----------
5
6
7
8
9

4.取id前50%的记录(这只是近似值)
SQL> select id from select_top order by id fetch first 50 percent rows only;

ID
----------
1
2
3
4
5
5
SQL> select count(*) from select_top;

COUNT(*)
----------
11

SQL> select 6/11 from dual;

6/11
----------
.545454545

oracle 12c 新特性之(相同字段上的多重索引、ddl 日志、限制PGA的大小、分页查询)的更多相关文章

  1. Oracle 12C 新特性之表分区带 异步全局索引异步维护(一次add、truncate、drop、spilt、merge多个分区)

    实验准备:-- 创建实验表CREATE TABLE p_andy(ID number(10), NAME varchar2(40))PARTITION BY RANGE (id)(PARTITION ...

  2. Oracle 12c新特性

    转载自:Oracle 12c新特性(For DBA) 一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性 ...

  3. Oracle 12C 新特性之扩展数据类型(extended data type)

    Oracle 12C 新特性-扩展数据类型,在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节.只要可能,扩展字 ...

  4. oracle 12c 新特性之不可见字段

    在Oracle 11g R1中,Oracle以不可见索引和虚拟字段的形式引入了一些不错的增强特性.继承前者并发扬光大,Oracle 12c 中引入了不可见字段思想.在之前的版本中,为了隐藏重要的数据字 ...

  5. Oracle 12c新特性(For DBA)

    一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性,内建的多分租(Multi-tenancy),一个容器 ...

  6. Oracle 12c 新特性之 数据库内归档(In-Database Archiving)

    Oracle Database 12c中引入了 In-Database Archiving的新特性, 该特性允许用户通过对表上的数据行标记为inactive不活跃的,以归档数据. 这些inactive ...

  7. ORACLE 12C新特性——CDB与PDB

    Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库( ...

  8. Oracle 12C 新特性之非分区表转分区表online clause(不停业务+索引有效)

    12c以前非分区表需要转换为分区, 如果不停业务的话可以使用在线重定义,只有在表进行切换的时候会有短暂的锁表. 12c 中alter table online clause 实现了表上现有的索引有效, ...

  9. Oracle 12C 新特性之 PDB热克隆(本地克隆、远端异机克隆)

    说明:版本12.2.0.1 12c r1版本中 clone 一份PDB源库需要打开在read only只读模式 , 在12c r2版本中引入了local undo mode, 源PDB在read/wr ...

随机推荐

  1. SpringMVC4+MyBatis+SQL Server2014+druid 监控SQL运行情况

    前言 在基于SpringMVC+MyBatis的开发过程中,我们希望能看到自己手写SQL的执行情况,在开发阶段我们可以配置log4j在控制台里基于debug模式查看,那么上线后,在生产声我们想查看SQ ...

  2. CSS学习笔记汇总

    CSS语法格式:一个css规则,由一个选择器和一个格式声明语句构成    例如:h1{color:red; font-size:14px;} CSS选择器: 1.基本选择器 1)* 号选择器:通配符, ...

  3. Failed to connect to Xilinx hw_server. Check if the hw_server is running and correct TCP port is used.

    Failed to connect to Xilinx hw_server. Check if the  hw_server is running and correct TCP port is us ...

  4. 【转】JS判断SWF,JPG加载完毕、兼容(Activex,plugIn)所有浏览器

    JS判断SWF,JPG加载完毕.兼容(Activex,plugIn)所有浏览器 这里主要说下监听SWF的加载. 网上流传已久的监听方法,只能在IE(Activex插件下)下实现.在使用plugin的浏 ...

  5. POPTEST老李谈Debug和Release的区别(c#)

    POPTEST老李谈Debug和Release的区别(c#)   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...

  6. 老李分享: 并行计算基础&编程模型与工具 1

    老李分享: 并行计算基础&编程模型与工具   在当前计算机应用中,对高速并行计算的需求是广泛的,归纳起来,主要有三种类型的应用需求: 计算密集(Computer-Intensive)型应用,如 ...

  7. 实现一个自己的promise

    这是小弟的一篇开篇小作,如有不当之处,请各位道友批评指正.本文将探讨Promise的实现. 一.ES6中的Promise 1.简介 据说js很早就实现了Promise,我是不知道的,我第一次接触Pro ...

  8. kafka 入门笔记 #1

    kafka 入门笔记(#1) 单机测试 下载版本,解压 tar -xzf kafka_2.11-0.10.1.1.tgz cd kafka_2.11-0.10.1.1 启动服务 Kafka用到了Zoo ...

  9. Java基础学习(三)—面向对象(上)

    一.理解面向对象       面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节:这种思想是将数据作为第一位,而方法或者说是 ...

  10. Ranking Relevance小结

    Ranking Relevance是搜索排序算法的各个影响因子中相当重要的一个部分.对于Ranking Relevance的计算,过去的技术往往分为两个大的方向:Click Behavior和Text ...