show_space

news/2024/7/10 20:29:57 标签: table, 性能优化, oracle, ext, asp, null

上篇《Oracle高水位线(HWM)及性能优化》用到的show_space

create or replace procedure show_space

( p_segname_1 in varchar2,
p_space in varchar2 default 'MANUAL',
p_type_1 in varchar2 default 'TABLE' ,
p_partition_1 in varchar2 default NULL,
p_analyzed in varchar2 default 'N',
p_owner_1 in varchar2 default user)
as
p_segname varchar2(100);
p_type varchar2(30);
p_owner varchar2(30);
p_partition varchar2(50);


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;


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;


procedure p( p_label in varchar2, p_num in number )
is
begin
dbms_output.put_line( rpad(p_label,40,'.') ||
p_num );
end;
begin
p_segname := upper(p_segname_1);
p_owner := upper(p_owner_1);
p_type := p_type_1;
p_partition := upper(p_partition_1);


if (p_type_1 = 'i' or p_type_1 = 'I') then
p_type := 'INDEX';
end if;


if (p_type_1 = 't' or p_type_1 = 'T') then
p_type := 'TABLE';
end if;


if (p_type_1 = 'tp' or p_type_1 = 'TP') then
p_type := 'TABLE PARTITION';
end if;


if (p_type_1 = 'ip' or p_type_1 = 'IP') then
p_type := 'INDEX PARTITION';
end if;


if (p_type_1 = 'c' or p_type_1 = 'C') then
p_type := 'CLUSTER';
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 );


if p_space = 'MANUAL' or (p_space <> 'auto' and p_space <> 'AUTO') then
dbms_space.free_blocks
( segment_owner => p_owner,
segment_name => p_segname,
segment_type => p_type,
partition_name => p_partition,
freelist_group_id => 0,
free_blks => l_free_blks );


p( 'Free Blocks', l_free_blks );
end if;


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 );




/*IF the segment is analyzed */
if p_analyzed = 'Y' then
dbms_space.space_usage(segment_owner => p_owner ,
segment_name => p_segname ,
segment_type => p_type ,
partition_name => p_partition,
unformatted_blocks => l_unformatted_blocks ,
unformatted_bytes => l_unformatted_bytes,
fs1_blocks => l_fs1_blocks,
fs1_bytes => l_fs1_bytes ,
fs2_blocks => l_fs2_blocks,
fs2_bytes => l_fs2_bytes,
fs3_blocks => l_fs3_blocks ,
fs3_bytes => l_fs3_bytes, 
fs4_blocks => l_fs4_blocks,
fs4_bytes => l_fs4_bytes,
full_blocks => l_full_blocks,
full_bytes => l_full_bytes);
dbms_output.put_line(rpad(' ',50,'*'));
dbms_output.put_line('The segment is analyzed');
p( '0% -- 25% free space blocks', l_fs1_blocks);
p( '0% -- 25% free space bytes', l_fs1_bytes);
p( '25% -- 50% free space blocks', l_fs2_blocks);
p( '25% -- 50% free space bytes', l_fs2_bytes);
p( '50% -- 75% free space blocks', l_fs3_blocks);
p( '50% -- 75% free space bytes', l_fs3_bytes);
p( '75% -- 100% free space blocks', l_fs4_blocks);
p( '75% -- 100% free space bytes', l_fs4_bytes);
p( 'Unused Blocks', l_unformatted_blocks );
p( 'Unused Bytes', l_unformatted_bytes );
p( 'Total Blocks', l_full_blocks);
p( 'Total bytes', l_full_bytes);

end if;

end;

/


http://www.niftyadmin.cn/n/1552203.html

相关文章

Rapae 弱化DAO的一种方法

可怜的DAO层已经被各位大侠蹂躏得体肤完肤了&#xff0c;从范型DAO一直被蹂躏到现在只剩下一个可怜巴巴的接口&#xff0c;无不体现Java人追求敏捷开发的热情。其实&#xff0c;DAO层本来的作用就应该自从Hibernate一类优秀的ORM框架诞生之日起就应该消失灭迹了的。既然如此&am…

IKAnalyzer源码分析---3

IKAnalyzer源码分析—CJKSegmenter、LetterSegmenter和CN_QuantifierSegmenter 本章开始分析IKAnalyzer中的三个Segmenter&#xff0c;分别是CJKSegmenter、LetterSegmenter和CN_QuantifierSegmenter。LetterSegmenter用来处理英文字符和阿拉伯数字&#xff0c;CN_QuantifierS…

ORA-16038 ORA-19502 ORA-00312错误案例

客户有个RAC系统停电之后导致服务器都无法正常的启动&#xff0c;所有的数据&#xff08;参数文件、控制文件、日志文件和数据文件&#xff09;都放在存储上&#xff0c;于是将存储挂载到了一台新的服务器&#xff0c;修改了参数文件之后将其启动到MOUNT模式&#xff0c;在OPEN…

模仿Warp Dynamic Finder的Hibernate Dynamic Dao

看了Robbin前两天发的那帖&#xff0c;Warp framework - 一个相当有前途的Java轻量级Web开发框架(http://www.iteye.com/topic/168780)&#xff0c;让人眼前一亮&#xff0c;特别是基于annotation的warp-dynamic-finder部分给人印象非常深刻&#xff0c;利用它&#xff0c;80%情…

IKAnalyzer源码分析---4

IKAnalyzer源码分析—歧义词 根据《IKAnalyzer源码分析—1》所示&#xff0c;IKSegmenter的next函数每次处理完一批数据后&#xff0c;会通过IKArbitrator的process函数进行歧义处理。 IKArbitrator::process void process(AnalyzeContext context , boolean useSmart){Quick…

获得数据库DBID的方法

RMAN工具时通过DBID唯一的标识一个数据库。DBID帮助RMAN找到正确的可以恢复控制文件和spfile的备份集。如果我们的备份策略并没有使用Recovery Catalog或者Flash Recovery Area&#xff0c;那么在恢复spfile和控制文件时就需要知道DBID。而如果备份策略使用了Recovery Catalog或…

warp框架

Warp framework 是最近刚刚发布的、基于Google Guice的轻量级Web开发框架&#xff0c;我也是在JavaEye网站的新闻频道看到的这条新闻&#xff1a; warp-persist 1.0: 为Google Guice专门提供持久层与事务处理的框架&#xff0c;通过这个新闻仔细阅读了Warp网站上面的文档&#…

solr-6.1.0源码分析---2

solr源码分析—doFilter 本章开始分析SolrDispatchFilter的doFilter函数&#xff0c;该函数被tomcat等框架调用。继续申明一下&#xff0c;为了方便分析和查看&#xff0c;文章的代码省略了一些不重要的部分。 SolrDispatchFilter::doFilter public void doFilter(ServletReq…