Oracle11g中,为了改善DBMS_STATS包收集统计信息时的唯一值计数功能,增加了 APPROX_COUNT_DISTINCT函数,但文档中未记载.Oracle12c文档中包括了该函数,因此,我们现在可以在应用中随意使用它. 1.    基本用法 先前的数据库版本中,如果我们想进行唯一值计数,我们可能会这么做. SELECT COUNT(DISTINCT c_name) AS nm_cnt FROM   test; NM_CNT ---------- 58172 1 row select…
通常情况下,Oracle会决定哪些数据会留在缓冲区中.当没足够的空间时,数据会被写出内存.此外,为了避免大量读取将有用的信息挤出缓冲区,Oracle对有些操作也许会才去绕过缓冲区的措施.Oracle12cR1 (12.1.0.2)引入了全数据缓冲的概念.如果Oracle认为缓冲区大的足以容纳整个数据库,那么,它将会缓冲所有的数据块.此外,可以强制启用全数据缓冲模式. 1.   强制开启全数据库缓冲模式 不是让Oracle自己决定是否开启全数据库缓冲模式,你可以通过ALTER DATABASE命令…
内存列存储(IM column store) 是Oracle12.1.0.2版本的主要特点.该特点允许列,表,分区和物化视图在内存中以列格式存储,而不是通常的行格式.数据存在内存中的好处显而易见,而列格式存储非常适合商务智能(BI)产品中的分析查询. 列存储是Oracle企业版的独立许可选项. 1.   简介 内存列存储在SGA中是一个新部分,通过初始化参数INMEMORY_SIZE指定大小.可以选择确定的列,整个表,物化视图或表分区组合存储在该部分.或者,你也可以在表空间层启用内存列存储,从而…
智能闪存功能最初在XD中引入.从Oracle11.2.0.2开始,除了用于XD存储,还可用于任何闪盘.Oracle12c中,不需卷管理器就可以使用闪盘. 1.  简介 智能闪存在solaris和linux上都可用,允许用户把闪盘当做第二层缓冲使用来改善性能.通常,当缓存中的数据因超时而被刷出后,下次使用时需被再次从磁盘读取到内存.通过智能闪存,超时的数据可以被放在智能缓存中,当这些数据被再次使用时,比从磁盘上读取能更快些. 为了能优化性能,官方文档建议智能闪存应该为缓存的2~10倍.这里,我们有…
临时表最有意思的特点之一是undo段也存储在常规undo表空间中,而它们的undo反过来被redo保护,这会导致一些问题. 1)  写undo表空间需要数据库以读写模式打开,因此,只读数据库和物理备库中不能用临时表. 2)  临时表中存储的是临时数据,恢复数据库时不需要恢复它们,因此,浪费redo来保护它们没必要. 3)  临时表的undo占用满足undo保留时间的表空间. Oracle12c中,允许将临时表的undo数据存储在临时表空间中,这使得临时表可以用于物理备库和只读库中,因为临时表没必…
Oracle 12c中,通过延迟相关索引的维护可以优化某些DROP和TRUNCATE分区命令的性能,同时,保持全局索引为有效. 1.   设置 下面的例子演示带全局索引的表创建和加载数据的过程. -- 建表 CREATE TABLE t1 (id            NUMBER, comment   VARCHAR2(50), crt_time  DATE) PARTITION BY RANGE (crt_time) (PARTITION part_14 VALUES LESS THAN (…
Oracle11g中,真实应用测试选项(the Real Application Testing Option)提供了一个有用的特点,叫SQL性能分析器(SQL Performance Analyzer,SQLPA,SPA).系统包DBMS_SQLPA让你可以注册和比较SQL调优集(STS)中的SQL语句执行的统计信息.通过SQL性能分析器,可比较数据库变化前后SQL语句的执行情况.下面将通过简单例子说明该Oracle 11g 新特点. 1.  创建样例表和数据 为了稍后的说明,首先,需创建一张…
Oracle的数据泵功能在10g中被引进.本文对数据泵在12c中的增强做一个概览. 1.   禁用日志选项(DISABLE_ARCHIVE_LOGGING) Impdp的TRANSFORM参数已经扩展为包括DISABLE_ARCHIVE_LOGGING选项.该选项的默认值为 "N",不会影响日志行为.将该选项设置为"Y",这将会使表和索引在导入前将日指属性设置为NOLOGGING,从而导入期间减少相关日志的产生,导入后再将日志属性重置为LOGGING. TRANSF…
浅析Oracle 12c中Data Guard新特性   写在前面 无论是做Oracle运维的小伙伴还是老伙伴,想必对Oracle数据库的数据级灾备核心技术—Data Guard是再熟悉不过了!这项从Oracle 8i就开始大面积普及的数据复制与灾备技术以其久经考验的成熟性.易用性和可靠性,受到了Oracle DBA界的一致好评,曾经一度是HA和DR,甚至数据迁移时的首选技术.然而近年来业界涌现的一系列新型技术方案,如基于日志的逻辑复制技术和存储底层复制技术等,有在某些方面超越Data Guar…
掌握jdk5.0中出现的新特性1.泛型(Generics)2.增强的"for"循环(Enhanced For loop)3.自动装箱/自动拆箱(Autoboxing/unboxing)4.类型安全的枚举(Type safe enums)5.静态导入(Static import)6.可变参数(Var args) 1.泛型(Generics) 泛型是JDK1.5中一个最重要的特征.通过引入泛型,我们将获得编译时类型的安全和运行时更小地抛出ClassCastExceptions的可能. pu…