日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Oracle存储使用情况,我收藏的oracle中一些分析空间使用情况的存储过程!

發(fā)布時(shí)間:2025/3/12 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle存储使用情况,我收藏的oracle中一些分析空间使用情况的存储过程! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

tom寫了個(gè)好工具show_space,這個(gè)工具對于oracle來講其實(shí)就是個(gè)存儲過程,這個(gè)存儲過程可以用來分析空間使用情況,有了此工具,就不用再通過寫sql語句來看每條記錄或表占用表空間的大小了,使用起來很方便。

具體使用過程如下:

首先需要創(chuàng)建一個(gè)存儲過程:

d:\>sqlplus /nolog

sql>connect / as sysdba

sql>create or replace procedure show_space

( p_segname in varchar2,

p_owner in varchar2 default user,

p_type in varchar2 default table,

p_partition in varchar2 default null )

as

l_total_blocks number;

l_total_bytes number;

l_unused_blocks number;

l_unused_bytes number;

l_lastusedextfileid number;

l_lastusedextblockid number;

l_last_used_block number;

procedure p( p_label in varchar2, p_num in number )

is

begin

dbms_output.put_line( rpad(p_label,40,.) ||

p_num );

end;

begin

dbms_space.unused_space

( segment_owner => p_owner,

segment_name => p_segname,

segment_type => p_type,

partition_name => p_partition,

total_blocks => l_total_blocks,

total_bytes => l_total_bytes,

unused_blocks => l_unused_blocks,

unused_bytes => l_unused_bytes,

last_used_extent_file_id => l_lastusedextfileid,

last_used_extent_block_id => l_lastusedextblockid,

last_used_block => l_last_used_block );

p( total blocks, l_total_blocks );

p( total bytes, l_total_bytes );

p( unused blocks, l_unused_blocks );

p( unused bytes, l_unused_bytes );

p( last used ext fileid, l_lastusedextfileid );

p( last used ext blockid, l_lastusedextblockid );

p( last used block, l_last_used_block );

end;

/

procedure created.

執(zhí)行以上語句會在當(dāng)前用戶下生成一個(gè)procedure,當(dāng)前用戶為sys用戶。

sql>create table t as select * from all_users; (創(chuàng)建表t)

sql> exec show_space(t); (查看表t占用空間大小)

free blocks.............................0

total blocks............................15

total bytes.............................61440

unused blocks...........................13

unused bytes............................53248

last used ext fileid....................13

last used ext blockid...................61782

last used block.........................2

結(jié)果馬上就出來了,以前必須通過sql語句查詢dba_tables才能得到結(jié)果,可見,此工具的方便性。

另外,此工具有好幾個(gè)版本,目前上面這個(gè)版本只適合表空間為非assm的時(shí)候,assm的時(shí)候是不能用的,原因是dbms_space.free_blocks 不允許在assm上操作,解決方法如下:

對于assm,可以使用dbms_space.space_usage

總結(jié)

以上是生活随笔為你收集整理的Oracle存储使用情况,我收藏的oracle中一些分析空间使用情况的存储过程!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。