oracle pctfree和pctused 詳解

來源:互聯網
上載者:User

標籤:oracle   arc   http   lte   自動   插入   date   管理   sed   

 

一、建立表時候,注意PCTFREE參數的作用

 

      PCTFREE:為一個塊保留的空間百分比,表示資料區塊在什麼情況下可以被insert,預設是10,表示當資料區塊的可用空間低於10%後,就不可以被insert了,只能被用於update;即:當使用一個block時,在達到pctfree之前,該block是一直可以被插入的,這個時候處在上升期。

 

      PCTUSED:是指當塊裡的資料低於多少百分比時,又可以重新被insert,一般預設是40,即40%,即:當資料低於40%時,又可以寫入新的資料,這個時候處在下降期。

 

 

 

二、舉例說明

 

      假設你一個塊可以存放100個資料,而且PCTFREE 是10,PCTUSED是40,則:不斷的向塊中插入資料,如果當存放到90個時,就不能存放新的資料,這是受pctfree來控制,預留的空間是給UPDATE用的。

 

      當你刪除一個資料後,再想插入個新資料行不行?不行,必須是刪除41個,即低於40個以後才能插入新的資料的,這是受pctused來控制的。

 

      注意:如果資料表空間上啟用了ASSM,在建立表的時候,只能指定PCTFREE,否則可用指定PCTFREE和PCTUSED。

 

             

 

 

 

三、調整pctfree與pctused
1、通過user_tables的pct_free,pct_used來查看
select a.table_name, a.pct_free, a.pct_used, a.* from user_tables a; 
說明:
pctfree表示用於保留更新操作的百分比,如果超過該值不能插入資料。
pctused表示資料所佔最低百分比,如果達到pctfree時不能插入,delete後如果達到pctused才可以用來insert

 

 

 

2、如果你使用的是自動管理資料表空間pctused不需要設定
altertable tablename pctfree values;
說明:
pctfree預設是10,主要看更新的資料有多大,可以查看錶的max_row_len如果很大又頻繁更新可以考慮增加該值。
pctused主要看刪除資料的大小,如果很大可以調大該值,如果不是很頻繁可以設定小一些30-40
pctused+pctfree<90

 

 

 

3、查看自動管理資料表空間
select tablespace_name,segment_space_management from user_tablespaces; --segment_space_management為auto表示自動管理資料表空間
主要起到節省資料表空間的作用。

 

 參見:http://www.cnblogs.com/linjiqin/archive/2012/01/16/2323320.html

oracle pctfree和pctused 詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.