Oracle全部索引丢失导致的效率问题处理

文章版权所有Jusin Haoluckyfriends),支持原创,转载请注明。

操作系统aix,存在有进程长时间占用cpu达24%;如下进程对应sql语句,

clip_image002

等待事件:latch free

clip_image004

同样的sql等待时间一会儿 有变成SQL*NET memssage from client;

SELECT scm_batchcode.tbatchtime, scm_batchcode.dproducedate, scm_batchcode.dvalidate, scm_batchcode.vvendbatchcode, scm_batchcode.cqualitylevelid, scm_batchcode.vnote, scm_batchcode.tchecktime, scm_batchcode.pk_batchcode, scm_batchcode.bseal, scm_batchcode.ts, scm_batchcode.vdef1, scm_batchcode.vdef2, scm_batchcode.vdef3, scm_batchcode.vdef4, scm_batchcode.vdef5, scm_batchcode.vdef6, scm_batchcode.vdef7, scm_batchcode.vdef8, scm_batchcode.vdef9, scm_batchcode.vdef10, scm_batchcode.vdef11, scm_batchcode.vdef12, scm_batchcode.vdef13, scm_batchcode.vdef14, scm_batchcode.vdef15, scm_batchcode.vdef16, scm_batchcode.vdef17, scm_batchcode.vdef18, scm_batchcode.vdef19, scm_batchcode.vdef20, scm_batchcode.binqc, scm_batchcode.pk_defdoc1, scm_batchcode.pk_defdoc2, scm_batchcode.pk_defdoc3, scm_batchcode.pk_defdoc4, scm_batchcode.pk_defdoc5, scm_batchcode.pk_defdoc6, scm_batchcode.pk_defdoc7, scm_batchcode.pk_defdoc8, scm_batchcode.pk_defdoc9, scm_batchcode.pk_defdoc10, scm_batchcode.pk_defdoc11, scm_batchcode.pk_defdoc12, scm_batchcode.pk_defdoc13, scm_batchcode.pk_defdoc14, scm_batchcode.pk_defdoc15, scm_batchcode.pk_defdoc16, scm_batchcode.pk_defdoc17, scm_batchcode.pk_defdoc18, scm_batchcode.pk_defdoc19, scm_batchcode.pk_defdoc20 FROM scm_batchcode WHERE scm_batchcode.pk_invbasdoc = :1 AND scm_batchcode.vbatchcode = :2

系统慢问题:

1. 修改凭证后保存凭证也异常的慢,需要时间20秒左右

该sql的执行计划

clip_image016

发现此表上只有一个主键的唯一索引;

clip_image018

查询数据库发现nc所有的表基本上都是只有主键上的索引;非唯一所以只有三个;

clip_image020

验证加索引后问题可解决:

Create Index I_gl_detail_1 On gl_detail(pk_voucher);

clip_image022

原来是之前存储坏的时候,客户dba 进行exp备份时设置了错误的参数,导致没有备份索引,后导入丢失了索引

解决方法:利用历史备份导出索引创建文件:

imp tb20111018/oracle@nbtb53 file=F:\tb20111018\yydatabakup\nc52.dmp log=F:\tb20111018\yydatabakup\nc52.log full=y feedback=10000 buffer=10240000 rows=N indexes=Y ignore=Y INDEXFILE=F:\tb20111018\yydatabakup\create_index.txt

利用宏剔除特殊字符等

clip_image024

去掉创建表的语句

clip_image026

然后保存为sql脚本,执行该创建索引的脚本。

建完索引后原来有问题的业务操作对应的sql堆栈发现sql语句已经不再是很长时间,而是ms级;

clip_image032

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14710393/viewspace-1082708/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14710393/viewspace-1082708/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值