Oracle查看对象空间使用情况show_space
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle查看对象空间使用情况show_space,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4758字,纯文字阅读大概需要7分钟。
内容图文
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_free_blks NUMBER;
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;
l_segment_space_mgmt VARCHAR2(
255);
l_unformatted_blocks NUMBER;
l_unformatted_bytes NUMBER;
l_fs1_blocks NUMBER;
l_fs1_bytes NUMBER;
l_fs2_blocks NUMBER;
l_fs2_bytes NUMBER;
l_fs3_blocks NUMBER;
l_fs3_bytes NUMBER;
l_fs4_blocks NUMBER;
l_fs4_bytes NUMBER;
l_full_blocks NUMBER;
l_full_bytes NUMBER;
PROCEDURE p(p_label IN VARCHAR2,
p_num IN NUMBER) IS
BEGIN
dbms_output.put_line(rpad(p_label, 40, ‘.‘) ||
to_char(p_num, ‘999,999,999,999‘));
END;
BEGIN
EXECUTE IMMEDIATE
‘select ts.segment_space_management from dba_segments seg,dba_tablespaces ts where seg.segment_name = :p_segname and (:p_partition is null or seg.partition_name = :p_partition) and seg.owner = :p_owner and seg.tablespace_name=ts.tablespace_name‘
INTO l_segment_space_mgmt
USING p_segname, p_partition, p_partition, p_owner;
-- exception
-- when too_many_rows
--
then
-- dbms_output.put_line(
‘This must be a partitioned table,use p_partition => ‘);
-- return;
--
end;
IF l_segment_space_mgmt =
‘AUTO‘ THEN
dbms_space.space_usage(p_owner, p_segname, p_type, l_unformatted_blocks,
l_unformatted_bytes, l_fs1_blocks, l_fs1_bytes,
l_fs2_blocks, l_fs2_bytes, l_fs3_blocks, l_fs3_bytes,
l_fs4_blocks, l_fs4_bytes, l_full_blocks,
l_full_bytes, p_partition);
p(
‘Unformatted Blocks ‘, l_unformatted_blocks);
p(
‘FS1 Blocks (0-25) ‘, l_fs1_blocks);
p(
‘FS2 Blocks (25-50) ‘, l_fs2_blocks);
p(
‘FS3 Blocks (50-75) ‘, l_fs3_blocks);
p(
‘FS4 Blocks (75-100) ‘, l_fs4_blocks);
p(
‘Full Blocks ‘, l_full_blocks);
ELSE
dbms_space.free_blocks(segment_owner => p_owner, segment_name => p_segname,
segment_type => p_type, freelist_group_id =>
0,
free_blks => l_free_blks);
END IF;
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(
‘Total MBytes ‘, trunc(l_total_bytes /
1024 /
1024));
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;
–用法演示
create table test_space
AS
select * from dba_tables;
/
SYS@orcl> exec show_space(‘TEST_SPACE‘);
Total Blocks ……………………… 112
Total Bytes ……………………… 917,504
Total MBytes ……………………… 0
Unused Blocks……………………… 3
Unused Bytes ……………………… 24,576
Last Used Ext FileId……………….. 1
Last Used Ext BlockId………………. 115,608
Last Used Block……………………. 5
PL/SQL 过程已成功完成。
SYS@orcl> delete from test_space;
已删除3044行。
SYS@orcl> commit;
提交完成。
SYS@orcl> exec show_space(‘TEST_SPACE‘);
Total Blocks ……………………… 112
Total Bytes ……………………… 917,504
Total MBytes ……………………… 0
Unused Blocks……………………… 3
Unused Bytes ……………………… 24,576
Last Used Ext FileId……………….. 1
Last Used Ext BlockId………………. 115,608
Last Used Block……………………. 5
PL/SQL 过程已成功完成。
SYS@orcl> truncate table test_space;
表被截断。
SYS@orcl> exec show_space(‘TEST_SPACE’);
Total Blocks ……………………… 8
Total Bytes ……………………… 65,536
Total MBytes ……………………… 0
Unused Blocks……………………… 7
Unused Bytes ……………………… 57,344
Last Used Ext FileId……………….. 1
Last Used Ext BlockId………………. 101,872
Last Used Block……………………. 1
PL/SQL 过程已成功完成。
drop table test_space;
版权声明:本文为博主原创文章,未经博主允许不得转载。
Oracle查看对象空间使用情况show_space
标签:show-space oracle
本文系统来源:http://blog.csdn.net/indexman/article/details/47207987
内容总结
以上是互联网集市为您收集整理的Oracle查看对象空间使用情况show_space全部内容,希望文章能够帮你解决Oracle查看对象空间使用情况show_space所遇到的程序开发问题。
如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
来源:【匿名】