Oracle11g
NinGoo's blog

Oracle11g新特性:Automatic Memory Management(AMM)

Oracle9i引入pga_aggregate_target,可以自动对PGA进行调整;Oracle10引入sga_target,可以自动对SGA进行调整。Oracle11g则对这两部分进行综合,引入memory_target,可以自动调整所有的内存,这就是新引入的自动内存管理特性。

SQL> alter system set memory_target=200m scope=spfile;

System altered.

SQL> alter system set memory_target=200m scope=spfile;

System altered.

SQL> alter system set sga_target=0 scope=spfile;

System altered.

SQL> alter system set pga_aggregate_target=0 scope=spfile;

System altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.

Total System Global Area 209235968 bytes
Fixed Size 1298920 bytes
Variable Size 150998552 bytes
Database Buffers 54525952 bytes
Redo Buffers 2412544 bytes
Database mounted.
Database opened.

[继续阅读全文]

Oracle11g新特性:虚拟列virtual column

Oracle11g引入了一个新的特性:虚拟列(Virtual Column)。虚拟列不进行实际的存储,而是通过函数计算得到。目前版本只能在普通的堆表中使用虚拟列,其他如index-organized table, external, object, cluster, 或者temporary table中都还不支持使用虚拟列。


SQL> create table test(i1 int, i2 int,i3 as (i1+i2) virtual);

Table created.

其中,virtual关键字可以省略。这样,i3列就是一个基于i1列和i2列计算得到的一个虚拟列。


NING@11g> insert into test values(1,2,3);
insert into test values(1,2,3)
*
ERROR at line 1:
ORA-54013: INSERT operation disallowed on virtual columns

NING@11g> insert into test(i1,i2) values(1,2);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from test;

I1 I2 I3
———- ———- ———-
1 2 3

[继续阅读全文]

Oracle11g新特性:RMAN压缩备份

Oracle10g的rman已经可以执行压缩备份,采用的压缩算法是bzip2。Oracle11g引入了一种新的压缩算法zlib。zlib的压缩率不如bzip2,但是压缩速度则要快不少。本文通过一个实验来对这两种压缩算法进行比较。


[oracle@localhost oracle]$ rman target /

Recovery Manager: Release 11.1.0.6.0 – Production on Thu Sep 6 15:47:43 2007

Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database: NING (DBID=1218842970)

[继续阅读全文]

Oracle11g新特性:server result cache续二

Server Result Cache应该是Oracle11g新特性中比较令人期待的,很多人都在研究这个特性,比如eygleyangtingkun都为这个特性写了一系列的文章。

Server Result Cache实际上是两个特性,一个是SQL Result Cache,一个是PL/SQL Function Result Cache。在上一篇文章中简单展示了SQL Result Cache的特性,这里打算说说PL/SQL Function Result Cache。

要在PL/SQL Function中启用result cache特性,只需要在创建function时添加RESULT_CACHE子句即可。另外还有一个RELIES_ON子句,可以指定该function依赖的对象,如果该对象改变则会导致该function缓存结果失效。

创建一个测试函数

NING@11g>create or replace function f_result_cache
2 return int
3 result_cache
4 as
5 l_count int;
6 begin
7 select count(*) into l_count
8 from all_objects;
9 — pause for 5 second
10 dbms_lock.sleep(5);
11 return l_count;
12 end f_result_cache;
13 /

Function created.

[继续阅读全文]