网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  实例讲解一个关于函数索引的性能调优过程     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:112次  录入:管理员--2008-02-28  
 

当出现应用较慢的情况时,我们可以首先用oem抓出sql,然后再进行详细的分析。

select nvl(to_char(status), 'null') status, 
nvl(to_char(subscribeid), 'null')
subscribeid
from abc
where status > 0
and replace(bbid, '''', '') = '9999-0009-11111'。

具体分析:

1.检查表是否分析。用oem查看schema下的table,右栏可以显示last analyzed的日期。结果显示表已分析过。

2.用set auotrace traceonly; set timing on 看执行计划以及执行时间,发现是full scan,运行时间大概是18秒。

3.查看索引的选择性,所谓选择性高,是指列中某个值的个数在正个列中所占比例低。如1个表中有1000行,某列中值为1的个数为10个,则如果此列建立索引的话,是能提高查询速度的。而如果值为1的个数在900个,oracle可能就会选择full scan。这种情况叫可选择性低。

sql>select count(*) from abc where status >0 ;

发现行数就是表的行数。则即使建立索引,cbo也会选择full scan。

4.再看replace(bbid, '''', '') = '9999-0009-11111',虽然bbid建立了索引,但由于加了hanshu raplace的缘故,索引不会生效。

以上几点就是为什么执行计划选择full的具体原因。

解决的方法;

加一个函数索引:

sql>create index inx_func_abc on abc(replace(bbid, '''', ''));

在加完索引后,我们需要进行分析。

sql>begin
sys.dbms_stats.gather_index_stats (
ownname => 'abc'
,indname => 'idx_func_abc'
,estimate_percent => 10
,degree => sys.dbms_stats.default_degree
,no_invalidate => false);
end;
/

我们可以发现,在加了函数索引后,性能得到了显著的提高。

 
 
上一篇: 做了archive后如何收缩oracle的数据文件    下一篇: oracle 9i与10g中plan_table的不同
  相关文档
解读oracle数据库的统一命名与编码规范 (1) 10-16
实例讲解如何重复利用这个外部表的表结构 05-07
深入讲解调整oracle sga大小的解决方法 04-07
教你通过任务和管道异步调用存储过程 04-11
解析:ORACLE性能调整--统计信息的迁移 08-05
使用dbms_stats时如何才能不生成histogram 03-27
个人经验总结:在oracle中恢复被drop掉的表 08-07
Oracle专家调优秘密 01-15
oracle的window服务启动时并不启动实例 03-04
如何在高级的复制中切换主体定义站点 03-26
oracle中用表外键来保证系统参照完整性 (1) 01-24
测试statspack使其可以自动收集系统状况 04-08
怎样在oracle中执行一次基本的快照复制 04-29
在oracle数据库中移动数据文件的具体方法 08-04
使用java调用oracle数据库的存储过程实例 08-12
详细讲解oracle数据库10g rman的备份过程 05-07
Oracle中用Rowid查找和删除重复记录 04-11
细化解析:Oracle 10g ASM 的一点经验 09-01
教你轻松掌握statspack报表的使用方法 (1) 06-24
使用oracle数据库高级复制中最简单的功能 06-12
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息