WEB开发网
开发学院数据库Oracle 索引在ORACLE中的应用分析 阅读

索引在ORACLE中的应用分析

 2008-09-08 12:53:16 来源:WEB开发网   
核心提示: 索引按功能分类唯一索引唯一索引有两个作用,一个是数据约束,索引在ORACLE中的应用分析(2),一个是数据索引,其中数据约束主要用来保证数据的完整性,alter session set query_rewrite_enabled=true注:如果对用户函数进行索引的话,那用户函数应加上 d

索引按功能分类

唯一索引

唯一索引有两个作用,一个是数据约束,一个是数据索引,其中数据约束主要用来保证数据的完整性,唯一索引产生的索引记录中每一条记录都对应一个唯一的ROWID。

主关键字索引

主关键字索引产生的索引同唯一索引,只不过它是在数据库建立主关键字时系统自动建立的。

一般索引

一般索引不产生数据约束作用,其功能主要是对字段建立索引表,以提高数据查询速度。

索引按索引对象分类

单列索引(表单个字段的索引)

多列索引(表多个字段的索引)

函数索引(对字段进行函数运算的索引)

建立函数索引的方法:

create index 收费日期索引 on GC_DFSS(trunc(sk_rq))

create index 完全客户编号索引 on yhzl(qc_bh||kh_bh)

在对函数进行了索引后,如果当前会话要引用应设置当前会话的query_rewrite_enabled为TRUE。

alter session set query_rewrite_enabled=true

注:如果对用户函数进行索引的话,那用户函数应加上 deterministic参数,意思是函数在输入值固定的情况下返回值也固定。例:

create or replace function trunc_add(input_date date)return date deterministic
as
begin
return trunc(input_date+1);
end trunc_add;

应用索引的扫描分类

INDEX UNIQUE SCAN(按索引唯一值扫描)
 select * from zl_yhjbqk where hbs_bh=’5420016000’
 INDEX RANGE SCAN(按索引值范围扫描)
 select * from zl_yhjbqk where hbs_bh>’5420016000’
 select * from zl_yhjbqk where qc_bh>’7001’
 INDEX FAST FULL SCAN(按索引值快速全部扫描)
 select hbs_bh from zl_yhjbqk order by hbs_bh
 select count(*) from zl_yhjbqk
 select qc_bh from zl_yhjbqk group by qc_bh

上一页  1 2 3 4 5  下一页

Tags:索引 ORACLE 应用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接