OCP复习 - 管理(11) - 管理表存储空间

来源:互联网 发布:线切割图形及编程 编辑:程序博客网 时间:2024/05/22 00:36

ROWID:

ROWID用来在整个数据库中唯一定位一行数据,包括:对象ID、文件ID、块ID、块中的行ID。ROWID需要10个字节的存储空间和18个字节的显示长度。

建表语句和修改表存储结构语句:
CREATE TABLE [schema.] table
(column datatype [ , column datatype ] ...)
[TABLESPACE tablespace ]
[ PCTFREE integer ]
[ PCTUSED integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
[ STORAGE storage-clause ]
[LOGGING | NOLOGGING] --NOLOGGING对某些LOAD操作不记日志
[CACHE | NOCACHE] ] --NOCACHE: 全表扫描时,数据被放在data cache的LRU的最早被使用端,而不是最近。

管理表物理空间增长策略的存储子句:INIT/NEXT/PCTINCREASE,分别代表表的初始大小,第一次扩展的大小,第二次以上扩展每次增长的百分比。


ALTER TABLE [schema.]table

  ALLOCATE EXTENT [ ([SIZE integer [K|M]] [ DATAFILE ‘filename’ ]) ]
ALTER TABLE employee MOVE TABLESPACE data1;

高水位线

high water mark - 标志一个表被使用的最后一个block,执行全表扫描时,Oracle扫描从第一个block到high water mark block。删除数据不导致重置high water mark。通过以下语句可以重置high water mark:
ALTER TABLE [schema.]table
  DEALLOCATE UNUSED [KEEP integer [ K|M ] ] --keep表示保留在high water mark以上的空间。

其他几个管理表存储空间的SQL语句:
TRUNCATE TABLE [schema.] table
  [{DROP | REUSE} STORAGE] --drop或reuse表示删除数据时是否释放使用的空间

DROP TABLE [schema.] table [CASCADE CONSTRAINTS]

ALTER TABLE employee
  DROP COLUMN comments
  CASCADE CONSTRAINTS CHECKPOINT 1000;

ALTER TABLE orders
  SET UNUSED COLUMN comments
  CASCADE CONSTRAINTS;

创建临时表:
CREATE GLOBAL TEMPORARY TABLE employee_temp AS SELECT * FROM employee;

Row Migration - 数据更新导致一行无法在一个block中容纳,整个行被迁移到另一个块,只留下指针。
Row Chaining - 行太大,无法再一个block中容纳,被分成几个小行放在几个block中。

表空间管理的相关数据字典和package:
dba_tables
DBA_EXTENTS
DBMS_ROWID Package

原创粉丝点击