oracle表管理

表类型:Regular table(堆表),Partitioned table,Index-organized table,Cluster

 

Regular table:插入的时候从segment里面找合适的空间插入,因此不能保证按插入循序排序。

Partitioned table:分区表。

Index-organized table:索引结构表,叶子节点是有序的。

Cluster:集群表,放在一个block里面。

 

create table t(

a int,

b varchar2(4000) default rpad('*',4000,'*'),

c varchar2(4000) default rpad('*',4000,'*'));

insert into t(a) values(1);

insert into t(a) values(2);

insert into t(a) values(3);

数据类型

 

 

 

Scalar:标量

标量分四大类:文本型,数字型,日期型,二进制型

一个表最多有1000列

表、索引都不限制

ROWID:唯一确定一行的标识,快速定位一条记录最快的方法,base64编码

ROWID结构:10个字节,4个部分,数据对象num,相对文件num,bolock num,row num

 一个block放多条记录,一条记录包含三部分row header, column length,column value

 

 

 

 

 

 

 create tablespace assm datafile 'u01/oradata/denver/assm_1.dbf' size 100M extent management local

uniform size 128K segment space management auto;

 

create tablespace mssm datafile 'u01/oradata/denver/assm_1.dbf' size 100M extent management local

uniform size 128K segment space management manual;

 

create user as1 identified by as1 default tablespace assm;

create user ms1 identified by ms1 default tablespace mssm;

col segment_name format 130

select segment_name,segment_type from user_segment;

 

create table t(

id int,

name char(10)

)

storage(initial 128K next 128K pctincrease 0 minextents 1 maxextends 5)

tablespace assm;

 

FREELIST:

PCTFREE:块预留空闲空间

PCTUSED:手动管理

INITRANS:

 

表和索引放在不同的表空间上。表空间放在不同的磁盘上

create global temporary table s as select * from emp;

临时表的生命周期可以在一次事务或一个session里,临时表可以创建索引、视图和触发器

 

临时表产生的redo信息少,速度快。临时表放在临时表空间里

创建临时表不分配segment.插入记录时,才分配segment。

临时表可以预先定义,在数据字典里挂个号,用时才生成。

产生redo主要是为产生undo信息的。插入和查询不进行修改和删除,redo可以忽略

会话级: create global temporary table tmp_session on commit preserve rows as select * from t where 1=0;

 

事务级:create global temporary table tmp_transaction on commit delete rows as select * from t where 1=0;

 

数据库重新启动了,临时表定义还在,数据没了。

 

行迁移(Row Migration):如果PCTFREE被设置得小,一条记录修改了变大,在块里面没足够空间,只有从一个空间移到另外一个块里,在老的地方留个指针指向新的位置。后果,性能下降。太大,磁盘利用率就小。

 

行链接(Row Chainning):超过254列或者某些列太大。块变大。

 

DBA_TABLES,DBA_OBJECTS,DBA_EXTENDS

alter table orders allocate extent;

 

不释放表空间:truncate table orders reuse storage;

alter table orders set unused column data_of_delay casade constraints;

alter table orders drop unused columns checkpoint 1000;

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值