分类 12c新特性 中的文章

12c中维护多分区

12c中可以很方便的通过简单的语句同时操作多个分区,其中包括drop和truncate多个分区,多个分区合并成一个,一个拆分成多个。 DROP/TRUNCATE多个分区 从12c开始可以用一个单独的语句就能维护多个分区,比如drop或truncate多个分区,不过如果表含有域索引,则只能一次删除或截取一个分区。执行这些操作时,分区里的数据也会被清除,如果你想保留……

阅读全文

12c rman从备份集中active duplicate

12c以前的版本中,ACTIVE DUPLICATE进程使用生产库的进程通过网络将镜像副本发送到辅助库,这会是一个很消耗时间的任务,因为复制进程是直接按照源库大小相同比例进行复制。而在现在的12c中,数据库复制进程可以使用备份集来代替镜像副本。那么需要传输的数据库大小就会大幅度减小,因为RMAN备份的时候会跳过没有使用的块和已经提交了的回滚块等。同时也可以使用……

阅读全文

12c不可见列

在12c中,Oracle允许隐藏某些列。这个操作可以由用户自己来控制,通过CREATE TABLE或者ALTER TABLE等方式。被隐藏的列之后也可以通过ALTER TABLE还原。一般访问表时都是无法显示出隐藏字段的,比如select * from table或者DESC TABLE。 隐藏列的基本特性: 一般对表的访问都不会显示隐藏列(SELECT * FROM TABLE, DESC TABLE) 数据库通……

阅读全文

12c返回指定行数

如果对返回结果进行行数的过滤时,通常都是通过order by + rownum <的方式,对于返回中间行数的情况就需要通过嵌套分页的写法,而在其他类型的数据库比如Mysql中可以比较方便的直接通过limit的方式 SELECT * FROM t1 ORDER BY 1 LIMIT 0, 10; row limiting概念 从12c开始,oracle对这方面的功能大大的增强,引入了Row_limiting_clause语句格式,允许查询sql……

阅读全文

In-Database Archiving

数据库内归档可以将表中的行标记为非活动状态来进行归档,这些非活动的行可以使用压缩来进行优化,但是应用程序看不到这些数据。如果想要看到这些数据的话可以通过在会话级别设置参数。 通过数据库内归档的技术,可以在一个数据库当中保存更多的数据,并维持更长的数据保存周期,并且不会降低应用程序的性能。这些归档数据也可以通过压缩来提高性能,应用升级的过程中,也可以延迟对这些归……

阅读全文

Identity Columns

标识列是12c的一个新特性,能自动生成列里的值,一部分功能与mysql中的自增列有点类似,简化了应用程序的开发和其他关系型数据库迁移到oracle。这个特性主要是利用一个默认的序列生成器,通过这个生成器来绝对字段增加或者减少的整数值。 drop table t1 purge; create table t1 (id number generated by default as identity, name varchar2(10)); insert into t1 (name) values ('xb'); commit; select * from t1; ID NAME ---------- ---------- 1 xb 对于标识列来说,我们要么指定一个默认的序列去生成字段值或者只……

阅读全文

12c新特性:只读分区

除了只读表以外,12c中引入了只读分区特性,每个分区或子分区可以独立的设置成只读或者读写,这样对于那些需要对指定分区数据的访问权限做控制的情况带来了方便。如果这个分区或子分区被设置成了只读模式,那么任何对这个分区或子分区的数据进行修改的操作都会报错,这样对这些数据进行了很好的保护。 只读分区: 只读属性确保了数据的不变 数据的不变并不会阻止表的DDL操作,比如新增……

阅读全文

12c新特性:外部表分区

从12.2版本开始允许对外部表进行分区化,让外部表也能享受到分区带来的便利性,比如分区裁剪和智能分区关联等。对于现在外部数据量较大的情况,对外部表的分区提供更高的查询效率和提升了数据的可维护性。 外部表分区与其他分区表类似,但是也有一些差异。外部表的文件可以存储在文件系统上,或者Hadoop分布式文件系统上。绝大部分一般分区策略都可以适用在分区外部表上,对于一……

阅读全文

12c新特性:多列list分区

从12.2开始,oracle支持建立多个列组成分区键的分区表了。创建多列list分区表与一般的list分区并无太大的区别,除了在指定分区键时包含了用逗号隔开的多个列。每个独立的分区可以包含多列的集合,通常每张表只会有一个DEFAULT分区,不支持子DEFAULT分区。 多列list分区 新建一个多列list分区,插入部分数据 drop table t1 purge; create table t1 ( id number, prov varchar2(10), name varchar2(10) ) partition by list (prov,name)……

阅读全文

12c新特性:自动创建list分区

自动创建list分区的特性,会根据需要自动对list分区表中每一个分区字段值创建单独的分区,这样大大减轻了DBA的工作负担,就不用依靠手动操作来维护大量表分区的创建,即使有不在原分区范围的内的值出现,也不需要将它们全部放在DEFAULT分区里面。 自动list分区其实跟以前的list分区基本类似,只是在维护上更方便一些,你只有在分区键确定的情况下才能创建自动l……

阅读全文