日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

具體使用過程如下:

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

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)前用戶下生成一個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é)果,可見,此工具的方便性。

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

對于assm,可以使用dbms_space.space_usage

總結(jié)

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

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