oracle查询表实际大小,简要分析估算oracle表的大小
查詢oracle表的大小有幾種方法,筆者簡要分析下他們的異同
環(huán)境,newsadmin.newlog,原本有244,459,078條記錄,delete后,現(xiàn)在只有51,109,919記錄。
一、segments
select bytes/1024/1024/1024 from dba_segments where segment_name='NEWLOG';
結(jié)果是27.26GB這個(gè)結(jié)果和
select sum(blokcs)*8/1024/1024 from dba_segments where segment_name='NEWLOG';
是完全一致的。
這個(gè)結(jié)果就是我們說的,該表在tablespace中實(shí)際占的大小。
二、show_space
并非oracle自帶的一個(gè)procedure,而是thomas寫的一個(gè)腳本,非常好用,可以前往
http://www.itpub.net/thread-239697-1-1.html
下載安裝
begin
sys.show_space(p_segname => 'NEWLOG',p_owner => 'NEWSADMIN');
end;
這樣可以看到一個(gè)分析結(jié)果
Segments................................NEWLOG
Segments Type...........................TABLE
Partition Name..........................
Unformatted Blocks .....................0
FS1 Blocks (0-25) ?.....................5
FS2 Blocks (25-50) .....................4336
FS3 Blocks (50-75) .....................12537
FS4 Blocks (75-100).....................2834583
Full Blocks ? ? ? ?.....................718526
Total Blocks............................3574016
Total Bytes.............................29278339072
Unused Blocks...........................0
Unused Bytes............................0
Last Used Ext FileId....................16
Last Used Ext BlockId...................924672
Last Used Block.........................128
解釋下,FS1 Blocks (0-25)是指,空閑度為0-25%的塊,所以從這里可以看見75-100和full blocks占得比例十分驚人,這就說明HWM非常高。我們可以粗略計(jì)算一下:
(2834583*2+12537*4+4336*6+5*8)/1024/1024=5.48GB,這是估算的實(shí)際表的大小。而上面顯示的Total Bytes.............................29278339072就是之前我們查詢到的,BLOCKS*db_block_size的大小。
筆者用exp不帶索引不帶觸發(fā)器的導(dǎo)出,大小為5.75GB和預(yù)估基本一致。
C:\Documents and Settings\yantaiwanhua15>exp user/password@remote file=d:\1.dmp tables=newsadmin.newlog triggers=n indexes=n
三、expdp
大家都知道expdp有個(gè)功能就是導(dǎo)出前預(yù)估大小,筆者博客之前有介紹過
5. ESTIMATE
指定估算被導(dǎo)出表所占用磁盤空間分方法.默認(rèn)值是BLOCKS
ESTIMATE={BLOCKS | STATISTICS}
設(shè)置為BLOCKS時(shí),oracle會(huì)按照目標(biāo)對象所占用的數(shù)據(jù)塊個(gè)數(shù)乘以數(shù)據(jù)塊尺寸估算對象占用的空間,設(shè)置為STATISTICS時(shí),根據(jù)最近統(tǒng)計(jì)值估算對象占用空間
Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS DIRECTORY=dump DUMPFILE=a.dump
第一種是根據(jù)blocks計(jì)算,就和前文描述的一致,是一種在HWM較低的情況下相對準(zhǔn)確的方法。STATISTICS是根據(jù)表的統(tǒng)計(jì)信息進(jìn)行估計(jì),相對來說準(zhǔn)確多。
但是使用expdp備份時(shí),盡量不要使用estimate參數(shù),因?yàn)檫@個(gè)額外操作是非常消耗資源的。
總結(jié)
以上是生活随笔為你收集整理的oracle查询表实际大小,简要分析估算oracle表的大小的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle orber by,Orac
- 下一篇: linux oracle12c dbca