工作之:oracle 11g deferred_segment_creation段延遲建立(轉載他人)

來源:互聯網
上載者:User

標籤:io   ar   sp   資料   div   on   問題   工作   bs   

oracle 11g 新增了一個參數:deferred_segment_creation,含義是段延遲建立,預設是true。具體是什麼意思呢?
如果這個參數設定為true,你建立了一個表T1,並且沒有向其中插入資料,那麼這個表不會立即分配extent,也就是不佔資料空間,只有當你insert資料後才分配空間。這樣可以節省少量的空間。

一、問題提出:
這帶來一個問題:如果你通過EXP命令來匯出整個使用者時,你會發現所有沒有資料的表都導不出來。如何解決這個問題呢?
二、問題分析:
1、既然建立的表沒有分配extent,那麼在user_segments視圖中必然查不到,但是在user_tables中一定是能查到的,這樣我們只要找到user_tables中有的,並且user_segments中沒有的表,就能找出來哪些表是沒有建立extent的。
select *
from user_tables
where table_name not in
(select segment_name from user_segments where segment_type = ‘TABLE‘);
2、找出來後,可以通過alter table xxx allocate extent 語句來讓其立即分配extent,這樣就可以匯出了,例如:
alter table t1 allocate extent (size 64k);
三、問題解決:
1、為了一次性批量把所有這樣的“空表”都解決,可以通過批量sql實現:
select ‘alter table ‘ || table_name || ‘ allocate extent(size 64k);‘ sql_text,
table_name,
tablespace_name
from user_tables
where table_name not in
(select segment_name from user_segments where segment_type = ‘TABLE‘);

2、然後把sql_text列在sqlplus中執行一下,就可以通過exp匯出了。
3、當然,每次匯出都這樣做實在是太麻煩了,你完全可以將deferred_segment_creation參數調為false,這樣調整後建的表都會立即分配空間,但是調整前的表都不會改變,因此還需要用1、2提到的辦法解決。
--調整deferred_segment_creation為false的文法:
conn /as sysdba
alter system set deferred_segment_creation=false;
--如果還想調回來:
conn /as sysdba
alter system reset deferred_segment_creation;
 

--檢查測試資料庫:

show parameters deferred_segment_creation;


四、注意事項:
1、現在網上提到的辦法都是先往表中間insert 一條資料,然後再rollback,使之分配空間,這種辦法比較笨,不推薦。
2、通過move的辦法也能得到相同的效果,但也不推薦。

工作之:oracle 11g deferred_segment_creation段延遲建立(轉載他人)

聯繫我們

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