Chinaunix首页 | 论坛 | 博客
  • 博客访问: 711846
  • 博文数量: 94
  • 博客积分: 1937
  • 博客等级: 上尉
  • 技术积分: 1618
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-04 18:46
个人简介

专注数据库开发管理

文章分类

全部博文(94)

文章存档

2015年(1)

2014年(2)

2013年(19)

2012年(32)

2011年(10)

2010年(30)

分类: Oracle

2013-01-25 17:53:25

STORAGE
=======================================================================================


-- Segment
Table: 普通表,适用于DML操作频繁
Table Partition: DML操作频繁,表规模非党大,必须进行分区
Index: 包含索引关键字及ROWID,用于提升查询性能
Cluster: 相似数据放在一起存储,复杂不易维护,尽量少用
Index Partition: 索引很大,每个索引分区只能存放于一个表空间
IOT: DML操作较少,存储结构紧湊
Temporary Segment: order by、group by、distinct需要排序,内存不够时需用到临时表空间
Undo Segment: DML数据发生变化后,原始值存放的位置
LOB Segment: 大数据如音视频,数据量太大单独采用的一个段存放数据,表中存放一指针指向该地址
Nested Table: 表中的字段由另一张表组成,类似C中的构造函数,维护复杂,一般不建议使用
bootstrap Segment: 自举段,由sql.bsq建立。无法查询或修改也无需维护

存储参数优先级
数据库定义存储参数 < 表空间定义的存储参数 < 段定义的存储参数

-- extent
引入extent目的:提高系统效率
oracle分配段:created, extended, altered
oracle删除段:dropped,altered, truncated

-- database block
标准数据块:DB_BLOCK_SIZE
非标准块: DB_nK_cache_SIZE n: 2,4,8,16,32

-- Parameters
INITRANS: 事务槽初始值
MAXTRANS: 事务槽最大值
PCTFREE: 预留空间,高于该值,从FREELISTS移除
PCTUSED: 已使用空间,低于该值,放入FREELISTS
FREELISTS: 空闲队列列表


自动段空间管理采用位图管理,建立表空间时加 SEGMENT SPACE MANAGEMENT AUTO
例:
CREATE TABLESPACE TSP
DATEFILE 'D:\APP\ORADATA\ABC.DBF'
SIZE 50M
EXTENT MANAGEMENT LOCAL
UNIFORM SIZE 1M
SEGMENT SPACE MANAGEMTN AUTO;

-- 查询表空间
SELECT tablespace_name,block_size,extent_management,segment_space_management
FROM dba_tablespaces
WHERE tablespace_name = 'TSP';

-- data dictionary
DBA_SEGMENTS
DBA_EXTENTS

DBA_FREE_SPACE


-- The End --

阅读(533) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~