Oracle11g
NinGoo's blog

Oracle11g新特性:server result cache续

之前投给It168的一篇文章中简单点评了一下Oracle11g的这个新特性,当时没有软件所以没有给出例子。本文主要是实际的测试演示一下server result cache。

Server result cache是在shared pool中为查询结果开辟一块专用的缓存,通过新引入的一个初始化参数来控制该cache的大小:result_cache_max_size。如果result_cache_max_size=0则表示禁用该特性。参数result_cache_max_result则控制单个缓存结果可以占总的Server result cache大小的百分比。另外还有一个初始化参数用于控制Server result cache的模式:result_cache_mode,如果取值为auto,则优化器会自动判断是否将查询结果缓存;如果取值为manual(这是默认值),则需要通过查询提示result_cache来告诉优化器是否缓存结果;如果取值为force,则系统会尽可能的缓存查询结果,当然,即使参数取值为force,也可以通过提示no_result_cache来拒绝缓存结果。在itpub关于该特性的讨论中,有人提到,文档中result_cache_mode只有manual/force两个取值。这个可能是文档的bug,通过给参数赋一个非法值得到的报错信息中明白的说明有三个取值:

SQL> alter session set result_cache_mode=a;
ERROR:
ORA-00096: invalid value A for parameter result_cache_mode, must be from among FORCE, MANUAL, AUTO

Oracle11g还引入了一个package专门用于管理server result cache:dbms_result_cache

[继续阅读全文]

Installing Oracle Database 11g on Windows

虽然目前Oracle还没有释出Oracle11g for windows的下载版本,但是在Oracle11g的网站上已经出现Oracle 11g for windows的安装文档了,从文章的截图中可以看到,windows版和linux版的安装界面基本上一样,颜色风格也差不多,版本也是11.1.0.6,和linux版本一致。安装教程都出来了,估计马上就可以从Oracle网站上下载了。

Installing Oracle Database 11g on Windows
Installing Oracle Database 11g on Linux

更多官方关于oracle11g的教程(OBE:Oracle by Example),请点击这里

Oracle11g新特性:只读表(read only table)

Oracle11g推出了一个新的特性,可以将table置于read only状态,处于该状态的table的不能执行DML操作和某些DDL操作。在Oracle11g之前的版本,只能将整个tablespace或者database置于read only状态。对于table的控制则只能通过权限来设定。

SQL> create table t(i int);

Table created.

SQL> insert into t values(1);

1 row created.

SQL> commit;

Commit complete.


SQL> alter table t read only;

Table altered.

SQL> select read_only from user_tables where table_name=’T';

READ_ONLY
——
YES

[继续阅读全文]

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

[继续阅读全文]