Oracle11g新特性:使用PIVOT/UNPIVOT进行行列转换

Oracle11g新特性:使用PIVOT/UNPIVOT进行行列转换

MS SQL Server 2005引入的pivot/unpivot关键字,对于行列转换确实非常的方便。所以Oracle11g也引入了这两个关键字,语法和SQL Server 2005的基本上差不错。

SQL> select * from sales;
 
PRODCUT       QUARTER     AMOUNT
--------
-- ---------- ----------
a                   1        100
a                   2        110
a                   3        130
a                   4        140
b                   1        210
b                   2        220
b                   3        230
b                   4        240

使用pivot转换显示:

SQL> select * from sales
 
2   pivot (sum(amount)
 
3  for quarter in
 
4  (1 as Q1,2 as Q2,3 as Q3,4 as Q4));
 
PRODCUT            Q1         Q2         Q3         Q4
--------
-- ---------- ---------- ---------- ----------
a                 100        110        130        140
b                 210        220        230        240

[继续阅读全文]

在OOW上了解到的Oracle11g新特性

昨天请假去Oracle Open World 2007上海国际会议中心溜达了一圈,收获不少,除了一些带有oracle标记的小玩意儿,更开心的是见到了itpub的新朋旧友,尤其是晚上的FB,50号人共聚一堂,何其壮哉!

原来以为免费注册的展厅门票不能听技术讲座,实际上,昨天去逛了几个会场都没有限制,看来是可以随便听了,前面进的两个会场,一个是OU的一个印度小伙子,听了一会儿完全不知道说什么,后来又去听了神州数码关于Oracle中间件的一个讲座,了解了Oracle融合中间件的一些组件。最有收获的应该是Rich Niemiec的Oracle11g新特性了,可惜上午的第一场没赶上,这个讲座的PPT已经有热心的网友在itpub中贴出,有兴趣的可以去这里下载。

另外在oracle产品展示区也了解到一些11g的特性,还有印象的有:

Physical standby在可读写模式时可以同时传送日志
在10g是不可以的,关于oracle10g physical standby的读写模式,请参考我以前的一篇文章

提供基于cube的查询重写
Cube是可以看做是多维度多level的一个聚合结果,基于cube的查询重写可以极大的减少mv的数量

Table的read only模式
Oracle11g提供了将table至于只读模式的功能,alter table table_name read only,只读表只能被drop或者重新置于read write模式,不能执行其他DDL和DML,也不能select for update

多列值的统计信息
Oracle11g之前可以对单个列收集统计信息,产生直方图,以便优化器根据数据的分布来生成更准确的执行计划。11g则可以为多个关联列收集统计信息,对于组合查询条件,为优化器提供更准确快捷的信息

统计信息的pending状态

在手机统计信息的同时可以将统计信息至于pending状态,也就是收集的统计信息暂时不影响优化器

审计默认打开
Oracle11g将默认在数据库级别开启audit,也就是初始化参数audit_trial=DB,据说11g中,审计消耗的系统资源将在1~2%左右

更强的密码策略和算法
提供更加强大细粒度的密码策略,并且将可以采用增强的hash密码算法

分区级别的数据压缩
可以在表和分区级别分别设置是否支持数据压缩。关于Oracle11g的数据压缩功能,请参考这里

另外,在产品演示区还看到了一个叫做SwingBench的产品,据说是Oracle UK的一个员工开发的压力测试工具,基于Java,可以以图形的方式直观的展现RAC的负载,执行标准TPCC测试等,回来Google了一下,作者叫Dominic Giles,目前最新版本是2.3,稳定版本是2.2,有兴趣的可以去他的网站(国内似乎不能上,找代理上吧-_-!)下载。

注:本文涉及的Oracle11g新特性,属于道听途说,未做验证,仅供参考。

Oracle11g新特性: Server Result Cache

注:本文已经发表于IT168Oracle11g新特性之Server Result Cache),版权所有,未经允许,请勿转载。

对于同样的操作,如果能在多个process或者session间共享结果,对于性能优化自然是非常有帮助的。从oracle7开始提供的share pool,可以让同样的SQL可以解析一次,执行多次,有效的减少了多个session执行相同SQL语句时的硬解析,如果应用很好的使用了绑定变量,那么共享SQL对于系统整体性能的提升是不言而喻的。

那么,除了能共享SQL和执行计划,还能共享什么?直接共享SQL执行后的结果,使得相同或者部分相同的SQL语句甚至只需要执行一次,以后再次执行时就直接得到结果?没错,Oracle11g的新特性Server Result Cache就能提供这样功能。Oracle在白皮书上宣布,对于读频繁的系统,通过该特性,甚至有可能提升系统性能200%,对于大量报表的数据仓库项目来说,这个特性应该是一个不错的消息。
[继续阅读全文]

Oracle11g新特性:Advanced Compression Option

注:本文已经发表于IT168点评Oracle11g新特性之:数据压缩技术),版权所有,未经允许,请勿转载。

随着数据量的不断海量,CPU的不断强劲,双核四核的叫个不停,一种叫做时间换空间的优化技术应该会越来越流行。所以,数据压缩对于今后的数据库来说,应该会从核武器变成常规武器。Oracle从9i开始羞羞答答的引入表级压缩,一直以来都是像中国的核电站一样,宣传的用处大,论实际的贡献就不怎么样了。

Oracle11g似乎是正儿八经的要推广数据压缩技术了,专门推出了一个叫做Advance Compression的组件,全面支持普通表压缩,非结构化数据压缩(SecureFile数据压缩),Data Pump数据压缩,以及RMAN备份压缩,数据压缩技术从此名正言顺的登上历史舞台。既然是专门做为一个Option推出,Oracle一定是对该特性相当有信心,所以需要单独为该特性购买License。
[继续阅读全文]