Oracle 11g R2 新特性:Deferred Segment Generation

來源:互聯網
上載者:User

當你安裝一個包含成千上萬的表和索引的應用時,如果每個表和索引都初始分配一個 10MB的初始
extent。你很快會意識到如果每個對象在建立時都要分配 10 MB的磁碟空間,則部署DDL需要花費大量的時間。你可能會想到讓
Oracle延遲每個對象的初始extent分配直到該表中實際插入記錄為止。

要延遲物件初始 segment的產生,唯一的方式就是使用
Oracle Database 11g R2。從  Oracle Database 11g R2以後,預設情況下,表(及其關聯的索引)的物理
extent分配會延遲到該表插入首條記錄時。

下面我們以一個簡單的小例子來說明這一新特性:

 

首先,我們建立一張表(不插入任何記錄):

SQL> create tabletest as select * from emp where 1=2;

Table created.

 

然後,我們查詢 USER_SEGMENTS和
USER_EXTENTS來驗證該表是否分配了物理的儲存空間:

 

SQL> selectcount(*) from user_segments where segment_name='TEST';

  COUNT(*)

----------

         0

 

SQL> selectcount(*) from user_extents where segment_name ='TEST';

  COUNT(*)

----------

         0

 

接下來我們往建立的 TEST表中插入一條記錄,驗證記錄插入後是否為該表分配儲存空間:

 

 

SQL> insert intotest select * from emp where rownum < 2;

1 row created.

 

SQL> selectcount(*) from user_extents where segment_name ='TEST';

  COUNT(*)

----------

         1

 

SQL> selectcount(*) from user_segments where segment_name='TEST';

  COUNT(*)

----------

         1

 

上面的行為與之前的 Oracle版本有很大區別。在之前的Oracle版本中,只要建立一個對象,就會為該對象分配初始化
segment及相應的 extent。Deferred segment generation同樣適用於分區表和分區索引。表在其初始記錄插入之前不會分配初始
extent空間。

 

從 Oracle Database 11g R2以後,對於在
local managed的資料表空間中建立的非分區堆表,其初始 segment會延遲到該表中的第一條記錄插入時建立。

 

Oracle 11g
R2 的新特性deferred segment creation:

 

在建立表對象時不會分配任何實體儲存體空間,直至該表插入首條記錄時才會分配初始 segment空間。這使得與之前的Oracle版本相比,在表中插入第一條記錄時的速度要稍顯得慢點,對於大多數情境,這種效能上的影響基本可以忽略。

 

將DEFERRED_SEGMENT_CREATION初始化參數設定為
FALSE可以禁用deferred segment creation特性。此參數的預設值為 TRUE。我們還可以在建立表時指定如下子句(新特性)來控制deferredsegment
creation的

行為:

 SEGMENT CREATION IMMEDIATE and SEGMENT CREATION DEFERRED

 

樣本如下:

 

create table f_regs(

reg_id number

,reg_namevarchar2(2000))

segment creationimmediate;

 

注意要使用SEGMENTCREATION
DEFERRED子句,必須將 COMPATIBLE參數設定為11.2.0.0.0及以上版本。


轉載請註明作者出處及原文連結,否則將追究法律責任:

作者:xiangsir

原文連結:http://blog.csdn.net/xiangsir/article/details/9063657

QQ:444367417

MSN:xiangsir@hotmail.com

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.