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 --
阅读(577) | 评论(0) | 转发(0) |