`
oolala
  • 浏览: 103281 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
09c341db-7f05-3f2b-a572-9ee69a5d8a77
unix环境高级编程
浏览量:22702
社区版块
存档分类
最新评论

oracle学习之6管理对象空间

阅读更多

管理对象空间

 

1)

段用于存储特定对象的所有数据,它是由一个或多个区组成。当建立表、索引和簇等对象,oracle会为这些对象分配存储空间,以存放它们的数据信息。为这些对象所分配的存储空间被称为段。在一个表空间上可以包含一个或多个段,一个段只能存放在一个表空间。

Ø  表段table:表段用于存储表的所有数据

Ø  表分区段table partition:表分区段用于存储分区表某个分区的数据,每个分区对应一个                                   表分区段。通过使用分区选项,可以将一张大表的数据部署到多个不同的分区段中,从而降低I/O次数,最终提高I/O性能。

Ø  簇段cluster:簇段用于存储簇表的数据,其名称与簇名相同。

Ø  索引段index:索引段用于存储索引的数据,其名称与索引名完全相同。

Ø  索引分区段index partition:索引分区段用于存储分区索引某个分区的数据

Ø  索引组织表段index-organized table:索引组织表是以B*树结构来组织数据的。

Ø  undo段:undo段用于存放事务所修改数据的旧值。

Ø  临时段temporary segment:临时段用于存放排序操作所产生的临时数据。

执行以下操作会被放到临时段中:

create index

select ......order by

select distinct...

select ...group by

select..union

select...intersect

select...minus

Ø  lob段: lob段用于存储lob列的数据,如文献、图像、音频。

Ø  嵌套表段nested table:嵌套表段用于存放嵌套表类型列的数据。

Ø  根引导段cache:根引导段用于初始化数据字典高速缓存,因此也被称为cache段。

 

1)  显示段信息

Ø  显示段类型:

a)显示数据库包含的所有段类型:

select distinct segment_type from dba_segments

Ø  建立表、索引和簇时,oracle会为这些对象分配相应的段,并且将段的信息记载到数据字典中。

select tablespace_name,extents,bytes from dba_segments

where ower=’scott’ and segment_name=’emp’

tablespace_name 用于标识段所在表空间,extends用于标识段所包含区个数,bytes用于标识段尺寸,owner用于标识段的所有者,segment_name用于标识段名。

2)  存储参数

a)initialinitial用于指定为段所分配的第一个区的尺寸。

当在本地管理表空间上建立数据库对象时,通过使用initial参数和区尺寸可以确定段的初始尺寸。确定段初始尺寸的方法

create table t1(cola INT) tablespace user01 storage(initial 500k);

其中tablespace选项用于指定段所在表空间,storage用于指定段的存储参数,

initial用于指定段的初始尺寸

a)  next:对于字典管理表空间来说,next用于指定为段所分配的第二个区的尺寸。

 

4)显示区信息

Ø  显示已分配区

select extents_id,file_id,block_id,bytes from dba_extends

where owner=’sys’ and segment_name=’t1’;

extent_id用于标识区编号(0:表示第0个区),file_id用于标识区所在的文件号,

 block_id用于标识区的起始块号,bytes用于标识区的尺寸。

 

Ø  显示空闲区

当在表空间上建立数据对象(表、索引和簇)时,oracle会在表空间的剩余空间中为相应段分配空间。当段不足以容纳更多数据时,oracle会通过分配区来扩展段。

例:显示user01表空间剩余空间为例

select sum(bytes) from dba_free_space where tablespace_name=’user01’

 

 

3)  管理数据块空间

数据块也被称为oracle块,它是oracle在数据文件上执行I/O操作最小单位。

Ø  PCTFREE

该参数用于指定在数据块内为update操作所预留空间的百分比,默认值为10

该参数有效值为0~99,但PCTFREEPCTUSED总和不能超过100.在数据块达到

PCTFREE之前,插入新行和块头扩展都可以使用相应的剩余空间。

 

假定PCTFREE20,那么当剩余空间超过20%时,insert操作可以使用数据块的剩余空间;当剩余空间低于20%时,insert操作将不能使用该部分空间,这些剩余空间是为update操作保留的。

 

参数PCTFREE的原则如:

a)使用小的PCTFREE可以提高update性能,如果对象update操作很少,应该使用较小的pctfree

b)使用大的PCTFREE可以提高update性能,如果对象的update操作非常频繁,应该使用较大的PCTFREE.

 

Ø  PCTUSED

该参数用于指定将数据块标记为可重用块的已用空间最低百分比,默认值为40.该参数有效值为0~99,但PCTFREEPCTUSED总和不能超过100.当数据块已经达到PCTFREE时,该数据块将不能被插入数据,只能删除了数据块的部分数据,并且数据块已用空间低于PCTUSED时,该数据块才能重新插入数据。

 

Ø  INITRANS

INITRANS用于指定初始事务入口个数,设置了该参数后,oracle会在数据块的块头上为每个事务入口预留相应的空间。INITRANS设置越大,数据块的剩余空间越少,当INITRANS预留的空间被用心之后,oracle会从剩余空间中分配更多的空间,并且这些空间会变为块头空间永久部分。

 

5)使用块空间参数

建立数据对象(表、索引和簇)时,可以指定块空间参数PCTFREE PCTUSEDINITRANS

a)  建立对象时指定块空间参数

SQL>create cluster dept_emp_clu(deptno number(3))

pctfree 20 pctused 40 initrans 4;

 

   SQL>create table deartment (deptno number(2),dname varchar2(10))

       pctfree 20 pctused 40 initrans 4;

 

   SQL>create index pk_deptno on department(deptno)

       pctfree 20 initrans 4;

 

b)  改变对象的块空间参数

建立了数据对象后,如果空间参数不适合,用户可以使用alter命令修改块空间参数,索引cptfree参数不能修改。

SQL>alter cluster dept_emp_clu pctfree 30 pctused 40 initrans 4;

SQL>alter table department pctfree 30 pctused 40 initrans 4;

SQL>alter index pk_deptno initrans 4;

 

4)  显示块空间参数

a)  建立簇时,可以指定块空间参数。如果不指定块空间参数,oracle会自动为相应参数提供默认值。通过查询dba_clusters,可以取得簇的块空间参数。

SQL>select pct_free,pct_used,ini_trans,maxtrans

           from dba_clusters where owner=’system’ and cluster_name=’dept_emp_

           clu’;

b)  显示表的块空间参数

SQL>select pct_free,pct_used,ini_trans,max_trans

from dba_tables

where owner=’system’ and table_name=’department’

 

c)  显示索引的块空间参数

SQL>select pct_free,ini_trans,max_trans

from dba_indexes

where owner=’system’ and index_name=’pk_deptno’;

0
1
分享到:
评论

相关推荐

    学习oracle创建一个表空间创建临时表空间创建用户表空间资源的权限

    在Oracle数据库系统中,表空间(Tablespace...通过学习和实践,你可以更好地理解和管理Oracle数据库中的表空间资源。在4.0Y2ORACLE第1章.SQL这个文件中,可能包含了上述操作的示例脚本,建议仔细阅读和运行以加深理解。

    oracle数据库管理大家学习一下

    Oracle数据库管理系统是全球广泛使用的大型关系型数据库系统之一,尤其在企业级应用中占据着重要地位。Oracle数据库管理涉及的内容非常广泛,包括数据库设计、安装配置、性能优化、备份恢复、安全控制等多个方面。...

    oracle学习资料,我搜集和总结的大量oracle学习资源

    本压缩包中包含的“Oracle学习资料”是一份综合性的资源集合,旨在为系统管理员和初学者提供深入理解Oracle数据库的路径。 首先,Oracle数据库的基础知识是学习的起点。这包括了解SQL(结构化查询语言),它是与...

    oracle表空间学习整理,包括常用sql

    以上内容涵盖了Oracle表空间的基本概念、作用和常见操作,通过学习和实践,你可以更有效地管理和优化你的Oracle数据库存储。在实际工作中,根据业务需求灵活运用这些知识,将有助于提升数据库的性能和可用性。

    oracle学习练习实验

    对于初学者来说,Oracle的学习是一个逐步深入的过程,涉及到SQL语言、数据库管理、表空间、索引、存储过程等多个方面。本实验练习将帮助你对Oracle有更深入的理解。 1. SQL基础:Oracle使用SQL(结构化查询语言)...

    Oracle学习笔记精华版

    Oracle学习笔记精华版是针对数据库管理系统Oracle的一份重要学习资源,涵盖了从基础概念到高级特性的全面知识。Oracle,作为全球广泛使用的大型企业级数据库系统,对于IT专业人员尤其是数据库管理员(DBA)来说,是...

    oracle学习视屏

    "Oracle学习视屏"是一系列针对Oracle数据库的学习资源,涵盖了从基础到进阶的全面教程,适合对数据库技术感兴趣或者需要提升Oracle技能的学习者。 首先,Oracle数据库的基础部分通常包括以下内容: 1. 数据库概念...

    Oracle用户(user)和表空间(tablespace).pdf

    Oracle 数据库是一个强大的关系型数据库管理系统,其用户管理和表空间机制是数据库管理和操作的基础。本文主要探讨了 Oracle 用户(user)和表空间(tablespace)的相关概念、创建、配置、修改以及删除等核心操作,...

    oracle空间学习指南

    Oracle空间学习指南主要聚焦在Oracle数据库的Spatial特性上,这是一个强大的地理信息系统(GIS)功能,用于存储、管理和分析地理位置相关的数据。Oracle Spatial是Oracle数据库的一个扩展模块,它提供了丰富的功能来...

    Oracle数据库学习手册 .docx

    总之,《Oracle学习手册》是学习和掌握Oracle数据库管理的一份详尽资源,无论你是初学者还是经验丰富的DBA,都能从中受益。通过深入理解和实践手册中的内容,你将能够有效地管理Oracle数据库,确保其高效、安全地...

    oracle命令大全及关于oracle 1000问 日志管理,表空间管理,表,索引等等等等

    表空间(Tablespace)是Oracle中逻辑存储的容器,用于存放数据库对象如表、索引等。`CREATE TABLESPACE`命令用于创建新的表空间,`ALTER TABLESPACE`用于修改表空间属性,如添加或删除数据文件,`DROP TABLESPACE`则...

    很全的oracle学习资料

    本套“很全的Oracle学习资料”包含了一系列深入学习Oracle技术的知识点,适合数据库管理员(DBA)、开发人员以及对Oracle感兴趣的学习者。下面,我们将详细探讨这些资料可能涵盖的内容。 一、Oracle基础 Oracle...

    ORACLE学习

    ### ORACLE学习知识点详解 #### 一、名词解释与概念理解 **数据对象**:在Oracle数据库中,数据对象指的是用户创建的各种数据结构实体,包括但不限于表(Table)、视图(View)、存储过程(Stored Procedure)、...

    Oracle入门学习资料精华

    Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,尤其在企业级应用中占据着重要地位。本资源“Oracle入门学习资料精华”是为初学者精心准备的一套学习材料,旨在帮助新接触Oracle的人员逐步掌握这个...

    个人学习oracle笔记

    Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,它由甲骨文公司开发和维护...通过阅读“个人学习Oracle笔记.txt”文件,你可以期望找到对这些概念的详细解释和实例,帮助你在Oracle学习之旅上取得进展。

    Oracle数据库学习课件

    4. **Oracle数据库管理**:这部分内容可能涵盖数据库实例管理、表空间和数据文件的管理、用户和权限管理、备份与恢复策略、性能监控与调优。还会涉及数据库的安全性、故障排查和问题诊断。 5. **Oracle高级特性**:...

    精通oracle 10g系统管理学习笔记

    Oracle数据库是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。Oracle 10g是Oracle公司推出的一个重要版本,提供了许多增强的功能和优化,以提高性能和可管理性。 Oracle服务器的核心组成...

    oracle数据库学习资料

    学习Oracle数据库,还需要理解其他关键概念,如索引(用于加速查询)、存储过程(预编译的SQL和PL/SQL代码块)、游标(处理单行或多行结果集)、分区(提高大规模数据的管理和查询效率)、并发控制(通过锁定和事务...

    oracle空间数据管理jar包.zip

    Oracle Spatial是Oracle数据库的一个扩展模块,它为存储、管理和分析空间数据提供了强大的功能。在"oracle空间数据管理jar包.zip"这个压缩包中,我们主要关注的是两个关键库:sdoapi和sdoutl,它们是Oracle Spatial...

    Oracle课程设计(仓库管理系统)

    Oracle 课程设计是学习 Oracle 的最后一个结业作业,旨在设计一个完整的仓库管理系统。本系统将涵盖 Oracle 的安装与配置、创建数据库、用户与权限管理、对象创建与管理等方面的知识。 一、Oracle 的安装与配置 ...

Global site tag (gtag.js) - Google Analytics