Oracle11g新特性:Automatic Memory Management(AMM)

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.

[继续阅读全文]