设为首页 加入收藏

TOP

【oracle11g,17】存储结构:段的类型,数据块(行连接、行迁移,块头),段的管理方式,高水位线(一)
2015-07-24 11:00:51 来源: 作者: 【 】 浏览:1
Tags:oracle11g 存储 结构 段的 类型 数据 连接 迁移 块头 管理 方式 水位

一.段的类型:
1.什么是段:段是存储单元。
1.段的类型有:
表 分区表 簇表 索引 索引组织表(IOT表) 分区索引 临时段 undo段 lob段(blob ,clob) 内嵌表(record类型,table类型) 启动段 :打开数据库时要装入的数据字典系统信息,故在系统表空间内。
注意:smon 回收不用的临时段和undo段。

2.表:
表是存储数据的逻辑单位。 表的功能: 存储、管理数据的基本单元, 表的类型: 普通表:堆表,
例:查询表的行的平均长度 AVG_ROW_LEN 平均长度 avg_space 平均空间 SQL> select table_name,tablespace_name,blocks,pct_free,pct_used,avg_space,AVG_ROW_LEN from dba_tables where table_name like 'EMP%';
TABLE_NA TABLESPACE_N BLOCKS PCT_FREE PCT_USED AVG_SPACE AVG_ROW_LEN -------- ------------ ---------- ---------- ---------- ---------- ----------- EMP1 SYSTEM 44 10 40 0 38 EMP USERS 1 10 40 0 38 EMPLX LXTBS2 10 10 40 1322 38
例:查询表默认的pctfree 和pctused 以及修改 SQL> select table_name,tablespace_name,blocks,pct_free,pct_used from dba_tables where table_name like 'EMP%';
TABLE_NA TABLESPACE_N BLOCKS PCT_FREE PCT_USED -------- ------------ ---------- ---------- ---------- EMP1 SYSTEM 44 10 40 EMPLX LXTBS2 10 10 40 EMP USERS 1 10 40
SQL> alter table emplx pctfree 12;
Table altered.
SQL> alter table emplx pctused 42;
Table altered.

3.分区表:
比如一个表尺寸大于2g,oracle建议分区,一个分区内的数据量一般不超过50w左右性能最好,最多不要超过100万。 range分区方式,按照指定范围分区,比如按时间分区或值大小分区。 list分区方式,是一种列举方式进行分区 哈数分区方式, 根据hash算法分区,有oracle管理。
①.分区表的使用详见:【dba,32】分区表:
②.案例:创建分区索引:

#创建分区表 SQL> CREATE TABLE sales_history 2 (id number(8),name varchar2(30),sales_date date) 3 PARTITION BY RANGE (sales_date) 4 (PARTITION p1 VALUES LESS THAN ( TO_DATE('01-JAN-1999','DD-MON-YYYY')) tablespace users, 5 PARTITION p2 VALUES LESS THAN ( TO_DATE('01-JAN-2000','DD-MON-YYYY')) tablespace users, 6 PARTITION p3 VALUES LESS THAN ( TO_DATE('01-JAN-2001','DD-MON-YYYY')) tablespace users, 7 PARTITION p4 VALUES LESS THAN ( TO_DATE('01-JAN-2002','DD-MON-YYYY')) tablespace users, 8 PARTITION p5 VALUES LESS THAN (MAXVALUE) tablespace users 9 );
Table created. #插入数据 SQL> insert into sales_history values(1,'PC1',to_date('17-FEB-2000','DD-MON-YYYY')); SQL> insert into sales_history values(2,'PC2',to_date('17-FEB-2001','DD-MON-YYYY')) SQL> insert into sales_history values(3,'PC3',to_date('17-FEB-2002','DD-MON-YYYY')); SQL> insert into sales_history values(4,'PC4',to_date('17-FEB-1999','DD-MON-YYYY'));
SQL> insert into sales_history values(5,'PC5',to_date('15-FEB-2000','DD-MON-YYYY')); SQL> insert into sales_history values(6,'PC6',to_date('12-FEB-2001','DD-MON-YYYY')); SQL> insert into sales_history values(7,'PC7',to_date('11-FEB-1998','DD-MON-YYYY')); SQL> insert into sales_history values(8,'PC8',to_date('13-FEB-2002','DD-MON-YYYY'));
SQL> insert into sales_history values(8,'PC8',to_date('13-FEB-2013','DD-MON-YYYY'));
#查询数据 SQL> select * from sales_history;
ID NAME SALES_DAT ---------- ---------- --------- 7 PC7 11-FEB-98 4 PC4 17-FEB-99 1 PC1 17-FEB-00 5 PC5 15-FEB-00 2 PC2 17-FEB-01 6 PC6 12-FEB-01 3 PC3 17-FEB-02 8 PC8 13-FEB-02 8 PC8 13-FEB-13
9 rows selected. #查询分区表数据 SQL> select * from sales_history partition(p1);
ID NAME SALES_DAT ---------- ---------- --------- 7 PC7 11-FEB-98
SQL> select * from sales_history partition(p2);
ID NAME SALES_DAT ---------- ---------- --------- 4 PC4 17-FEB-99
SQL> select * from sales_history partition(p3);
ID NAME SALES_DAT ---------- ---------- --------- 1 PC1 17-FEB-00 5 PC5 15-FEB-00
SQL> select * from sales_history partition(p4);
ID NAME SALES_DAT ---------- ---------- --------- 2 PC2 17-FEB-01 6 PC6 12-FEB-01
SQL> select * from sales_history partition(p5);
ID NAME SALES_DA

首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Install Goldengate On Oracle Ra.. 下一篇Oracle实践--PL/SQL基础之触发器..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis 分布式锁全解 (2025-12-25 17:19:51)
·SpringBoot 整合 Red (2025-12-25 17:19:48)
·MongoDB 索引 - 菜鸟 (2025-12-25 17:19:45)
·What Is Linux (2025-12-25 16:57:17)
·Linux小白必备:超全 (2025-12-25 16:57:14)