Chinaunix首页 | 论坛 | 博客
  • 博客访问: 389870
  • 博文数量: 165
  • 博客积分: 436
  • 博客等级: 下士
  • 技术积分: 887
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-10 02:49
文章分类

全部博文(165)

文章存档

2012年(95)

2011年(70)

分类:

2012-02-23 21:12:06

原文地址:深入索引 作者:anya_安雅


select * fro user_indexes 查询现的索引

select * fro user_ind_columns 知索引立在些字


1索引优缺点

建立索的优

1.;

2.唯一;

3.;

4.使著减 索引的

1.

2.当对表中数据进行增加、除和修改的时,索引也要态的维护,降了数据

维护

2.创建索引原则

创建索引列的访 的策

-- select 

-- where 

--最高 1egprimar key

--性的 where 限定件最二列MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0

-- 5M 使小,越适

3.使用索引原则

--据行 5%使 index 询效

--where 使引效果会 sql 语句时由 Oracle   得所使

-- select,但 insertdelte  update  eg SQL (em  deptno  ununique  index)  ASELEC dname deptn FRO dep W HER deptno  NO IN

(SELEC deptn FRO emp);

 BSELEC dname deptn FRO dep W HER NOT  EXISTS (SELEC deptno   FRO em W HER dept.deptn =  emp.deptno);

这两 A 的时候ORACLE 对整 emp 

进行使 emp  deptno 引,执行 B  使用ORACLE 只是 emp 数据扫描利用 deptno  所以 B 比语 A 

----where 子句中的这个字段必须是合索引个字

eg:一个索引是按 f1, f2, f3 的次序建的,若 wher 子句是 f2 = : var2,  因为 f 不是索 引的第 字段,法使用索引。

--- where 句中的这个字段,不应该参与任何形计算:任何对列的操作都将导致表 扫描,它括数据函数、算表达等等,要尽可能操作移等号右

---- 应尽量熟悉各种操作符 Oracl 是否使  引的影响: 下这些操 会显

explicitly )地阻 Oracl 使用索引 i nul ;   i no nul ;   not  in;   !=;   lik ;

numeric_col+0;date_col+0; char_col||';   to_char;   to_numberto_date 等。

Eg

Select jobid from mytabs where isReq='0' and to_date (updatedate) >= to_Date ( '2001-7-18',

'YYYY-MM-DD')--updatedate 列的索引也不会生

4.创建索引

creatindeabostudent(sid,sname);

creatindeabc1 ostudent(sname,sid);

这两种索方式是一样的

索引 abc  Select from student where sid=1;  这样的查询语句有效

索引 abc Select from student where sname=louis; 这样的查语句更 因此建立引的时,字段组合顺是非常。一般情下,需经常访的字段 放在组合段的前面

5.索引的存储

索引和表是独立在的。为索引定表空候,不要被索引表和索指向同 一个表空,这样以避免 IO 冲突。使 Oracle 能够并行访问存放不同硬中的索 引数据和数据,好的提查询速

6.删除索引

droindePK_DEPT1;

7.索引类型

树索B-Tree Index

创建索引默认类,结构一颗树采用的平衡 B 树算法:

l 右子树节的键值于等于节点的

l 左子树节的键值于等于节点的 比如有数:100,101,102,103,104,105,106

MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0

(BitMap Index)

如果表中某些字取值范比较小比如职、分数列 ABC 只有两值。 这样的字如果建 B 索引没意义,能提检索速度。这我们推用位图

Create BitMap Index student on(sex);

8.管理索引

1)先插入据后创索引 向表中插大量数之前最不要先建索如果先建索引那么在入每行 数据的时都要更索引。样会大降低插的速度。

2)设置合的索引顺序

3)限制每表索引数量

4)删除不要的索引

5)为每个引指定空间

6)经常做 insertdelete 尤其是 update 的表最好定期 exp/imp 表数据,整理数据,降低碎

片(缺点:要停应用,以保持数据一致性,不实用);有索引的最好定期rebuild索引(rebuild

期间只允表的 select 操作,可在数据较空闲时间提交,以低索引片,提效率












阅读(1318) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~