Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->数据库应用 ->Oracle ->正文

分享:我的oracle9i学习笔记

来源:chinaunix  作者:Webmaster 时间:2007-04-23 点击: [收藏] [投稿]

######## managing indexes ##########

/*create index*/

example:

/*创建一般索引*/

create index index_name on table_name(column_name) tablespace tablespace_name;

/*创建位图索引*/

create bitmap index index_name on table_name(column_name1,column_name2) tablespace tablespace_name;

/*索引中不能用pctused*/

create [bitmap] index index_name on table_name(column_name) tablespace tablespace_name pctfree 20 storage(inital 100k next 100k) ;

/*大数据量的索引最好不要做日志*/

create [bitmap] index index_name table_name(column_name1,column_name2) tablespace_name pctfree 20 storage(inital 100k next 100k) nologging;

/*创建反转索引*/

create index index_name on table_name(column_name) reverse;

/*创建函数索引*/

create index index_name on table_name(function_name(column_name)) tablespace tablespace_name;

/*建表时创建约束条件*/

create table user.table_name(column_name number(7) constraint constraint_name primary key deferrable using index storage(initial 100k next 100k) tablespace tablespace_name,column_name2 varchar2(25) constraint constraint_name not null,column_name3 number(7)) tablespace tablespace_name;

/*给创建bitmap index分配的内存空间参数,以加速建索引*/

show parameter create_bit;

/*改变索引的存储参数*/

alter index index_name pctfree 30 storage(initial 200k next 200k);

/*给索引手工分配一个分区*/

alter index index_name allocate extent (size 200k datafile '$ORACLE/oradata/..');

/*释放索引中没用的空间*/

alter index index_name deallocate unused;

/*索引重建*/

alter index index_name rebuild tablespace tablespace_name;

/*普通索引和反转索引的互换*/

alter index index_name rebuild tablespace tablespace_name reverse;

/*重建索引时,不锁表*/

alter index index_name rebuild online;

/*给索引整理碎片*/

alter index index_name COALESCE;

/*分析索引,事实上是更新统计的过程*/

analyze index index_name validate structure;

desc index_state;

drop index index_name;

alter index index_name monitoring usage;-----监视索引是否被用到

alter index index_name nomonitoring usage;----取消监视

/*有关索引信息的视图*/

select * from dba_indexes/dba_ind_columns/dbs_ind_expressions/v$object_usage;

########## 数据完整性的管理(Maintaining data integrity) ##########

alter table table_name drop constraint constraint_name;----drop 约束

alter table table_name add constraint constraint_name primary key(column_name1,column_name2);-----创建主键

alter table table_name add constraint constraint_name unique(column_name1,column_name2);---创建唯一约束

/*创建外键约束*/

alter table table_name add constraint constraint_name foreign key(column_name1) references table_name(column_name1);

/*不效验老数据,只约束新的数据[enable/disable:约束/不约束新数据;novalidate/validate:不对/对老数据进行验证]*/

alter table table_name add constraint constraint_name check(column_name like 'B%') enable/disable novalidate/validate;

/*修改约束条件,延时验证,commit时验证*/

alter table table_name modify constraint constraint_name initially deferred;

/*修改约束条件,立即验证*/

alter table table_name modify constraint constraint_name initially immediate;

alter session set constraints=deferred/immediate;

/*drop一个有外键的主键表,带cascade constraints参数级联删除*/

drop table table_name cascade constraints;

/*当truncate外键表时,先将外键设为无效,再truncate;*/

truncate table table_name;

/*设约束条件无效*/

alter table table_name disable constraint constraint_name;

alter table table_name enable novalidate constraint constraint_name;

/*将无效约束的数据行放入exception的表中,此表记录了违反数据约束的行的行号;在此之前,要先建exceptions表*/

alter table table_name add constraint constraint_name check(column_name >;15) enable validate exceptions into exceptions;

/*运行创建exceptions表的脚本*/

start $ORACLE_HOME/rdbms/admin/utlexcpt.sql;

/*获取约束条件信息的表或视图*/

select * from user_constraints/dba_constraints/dba_cons_columns;

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Oracle Database缓冲区漏洞   下一篇:设计和实施Oracle RAC项目

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号