`
feng5hao
  • 浏览: 23093 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

ORACLE10g ASSM 学习(二)

阅读更多

创建存储过程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_analyzed in varchar2 default 'N',
p_owner_1 in varchar2 default user)
as
p_segname varchar2(100);
p_type varchar2(10);
p_owner varchar2(30);

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); -- rainy changed
p_owner := upper(p_owner_1);
p_type := p_type_1;

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

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

if (p_type_1 = 'c' or p_type_1 = 'C') then --rainy changed
p_type := 'CLUSTER';
end if;


dbms_space.unused_space
( segment_owner => p_owner,
segment_name => p_segname,
segment_type => p_type,
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,
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 ,
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;

 

 

SQL> set serveroutput on;
SQL> exec show_space('workinfo','auto');
 
Total Blocks............................8
Total Bytes.............................65536
Unused Blocks...........................0
Unused Bytes............................0
Last Used Ext FileId....................4
Last Used Ext BlockId...................15577
Last Used Block.........................8
 
PL/SQL procedure successfully completed
 
SQL> exec show_space('workinfo','auto','T','Y'); 
 
Total Blocks............................8
Total Bytes.............................65536
Unused Blocks...........................0
Unused Bytes............................0
Last Used Ext FileId....................4
Last Used Ext BlockId...................15577
Last Used Block.........................8
 *************************************************
The segment is analyzed
0% -- 25% free space blocks.............1
0% -- 25% free space bytes..............8192
25% -- 50% free space blocks............0
25% -- 50% free space bytes.............0
50% -- 75% free space blocks............0
50% -- 75% free space bytes.............0
75% -- 100% free space blocks...........0
75% -- 100% free space bytes............0
Unused Blocks...........................0
Unused Bytes............................0
Total Blocks............................4
Total bytes.............................32768

PL/SQL procedure successfully completed
分析ASSM 索引
SQL> exec show_space('WORKINFO_STATUS','auto','i');
 
Total Blocks............................8
Total Bytes.............................65536
Unused Blocks...........................4
Unused Bytes............................32768
Last Used Ext FileId....................4
Last Used Ext BlockId...................24073
Last Used Block.........................4

 

--查看表空间是否自动段管理
select tablespace_name, segment_space_management from dba_tablespaces

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Oracle10g ocp培训中文文档

    这个培训文档集旨在帮助学习者深入理解Oracle 10g数据库的核心概念、功能以及最佳实践,以便成功通过OCP认证考试。 首先,D17092CN31_SG1教材.pdf可能涵盖了Oracle 10g的基础知识,包括但不限于以下几个方面: 1. ...

    Oracle11g 维护培训课件V1.0-20090627-B

    10. **自动操作**:Oracle11g的自动管理特性,如自动段空间管理(ASSM)、自动工作量管理(AWM)和自动统计信息收集,能够减轻DBA的工作负担。 通过深入学习和实践这些知识点,IT专业人员将能够有效地管理和维护...

    《一头扎进Oracle 11g》第十五讲源码及文档.zip

    通过《一头扎进Oracle 11g》第十五讲的源码及文档,学习者可以深入理解这些核心概念,并结合实际案例进行实践,提升在Oracle 11g数据库管理、开发和调优方面的技能。源码部分可能涵盖了数据库脚本、存储过程、触发器...

    Oracle10g DBA 两日速成自学材料9

    ### Oracle10g DBA 监控和调整数据库知识点...通过上述知识点的学习,读者可以了解到Oracle10g DBA中关于监控和调整数据库的基本概念、工具使用方法以及实践操作流程。这对于有效管理和优化Oracle数据库性能至关重要。

    Oracle Database 11g The Complete Reference.pdf

    5. **存储管理改进**:在存储层面,Oracle Database 11g引入了诸如自动段空间管理(ASSM)等新特性,简化了存储空间的管理,提高了存储效率。 #### 三、Oracle Database 11g新特性详解 除了架构上的改进之外,Oracle...

    ORACLE适用于大学或大专的教纲

    12. **Oracle10g存储结构新特性**:讨论Oracle10g引入的新存储特性,如Automatic Segment Space Management(ASSM)。 13. **Oracle的Schema对象及管理**:Schema的概念,以及如何创建、修改和删除Schema中的对象。...

    Oracle Database 11g Administration

    - Oracle 11g提供了自动段空间管理(Automatic Segment Space Management, ASSM),简化了段空间的分配和回收。 - 临时表空间用于存储临时工作数据,如排序和联接操作。 2. **备份与恢复**: - RMAN(Recovery ...

    Oracle.Database.10g.Performance.Tuning.Tips&Techniques

    通过对上述核心知识点的学习与实践,DBA们能够更好地理解和掌握Oracle 10g数据库的性能调优技巧与方法。这不仅有助于提高系统运行效率,还能够在面对复杂性能问题时具备更加敏锐的洞察力和解决问题的能力。希望每位...

    Oracle_11g_面向DBA的新功能学习指南 less15

    ### Oracle 11g 面向 DBA 的新功能详解——SecureFiles #### 一、背景介绍 在 Oracle 11g 中,为了更好地适应不断发展的业务需求和技术挑战,Oracle 对 LOB (Large Object) 功能进行了重大升级,引入了一种全新的...

    OCP Oracle Database 11g Administration II Exam Guide Exam 1Z0-053

    他不仅在Lands’ End担任数据库设计师和Oracle数据库管理员,还为多个Oracle Press和Apress书籍担任技术编辑,并编写了多本Oracle 10g和11g的认证学习指南。书籍的技术编辑Gavin Powell也是一位经验丰富的IT专家,他...

    Oracle 12c DBA Handbook

    - **Bob Bryla**:拥有超过20年的数据库设计、开发和Oracle数据库管理经验,是Oracle 9i、10g、11g及12c认证专家。目前担任Epic公司首席Oracle DBA及数据库系统工程师。此外,他还参与了多本Oracle Press书籍的技术...

    Oracle修改存储空间相关sql

    Oracle 10g引入了ASSM,它自动处理段空间的分配和碎片整理,简化了存储管理。启用ASSM的表空间创建语句: ```sql CREATE TABLESPACE tablespace_name AUTOEXTEND ON NEXT size INCREMENT BY increment EXTENT ...

    Oracle9i DBA手册前三章.rar

    Oracle 9i作为早期版本,虽然在功能上可能不及后来的10g、11g和12c,但它奠定了许多现代Oracle数据库管理的基础,对于深入理解Oracle数据库原理和技术发展有着重要的参考价值。通过深入研读这前三章,DBA可以建立起...

    Less13_Performance_TB3.pdf

    根据提供的文档信息,我们可以总结出以下关于Oracle Database 10g性能管理的相关知识点: ### 性能管理概述 - **课程目标**:本课程旨在帮助学员掌握如何利用Oracle Enterprise Manager监控数据库性能、使用SQL ...

Global site tag (gtag.js) - Google Analytics