-- ROWID
限制性ROWID(oracle7或以前版本)
FFF+BBBBBB+RRR
相对文件号+块号+行号
扩展性ROWID
oooooo+FFF+BBBBBB+RRR
数据对象号+相对文件号+块号+行号
行:行头+字段长+字段值+字段长+字段值+……
slot的概念:每一行在行目录中都有一个slot,指向行超始地址
-- 建表
create table T
(
ID INTEGER
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64
next 1
minextents 1
maxextents unlimited
);
其它参数: pctfree、pctused、initrans、maxtrans
-- 查看表属性
select table_name,tablespace_name,initial_extent from dba_tables where owner='U1';
-- 修改参数
alter table t pctfree 20 pctused 50;
-- 临时表
create global temporary table tmpx
on commit delete rows -- on commit preserve rows
as
select * from t;
-- TEMPORARY表示是否为临时表
SELECT TEMPORARY,OWNER,TABLE_NAME FROM dba_tables WHERE table_name='TMPX';
alter table t move;
alter table t move tablespace users; -- 修改表的表空间
-- 平衡I/O手工分配extent
alter table t allocate extent [size n K|M] [datafile '文件名'];
-- 查看segment与extent
select segment_name,tablespace_name,extents,blocks from dba_segments;
select * from dba_extents;
-- 索引是否有效
select object_id,object_name,object_type,status,created
from dba_objects where object_type='INDEX';
select index_name,table_name,tablespace_name,status from dba_indexes;
alter index ix_t rebuild tablespace users;
-- 删除表及数据
truncate table t; -- 不会触发delete触发器
drop table t [cascade constraints];
-- 改名
alter table t rename to tt; --改表名
alter table t rename column scn to id; --改列名
-- 删除字段
alter table t drop column scn cascade constraints checkpoint 500; -- 删除列
alter table t drop columns continue;
/**
checkpoint 500 指每500行发生一次checkpoint
若中途发生故障退出,采用continue子句继续删除列的操作
*/
-- 数据库繁忙时可以将此列置为unused空闲时再删除
alter table t set unused id cascade constraints;
alter table t drop unused columns checkpoint 500;
alter table t drop columns continue;
-- The End --
阅读(818) | 评论(0) | 转发(0) |