数据库性能优化
天凯科技
广州天凯科技,专注数据库运维与优化,十年DBA实战经验,分享海量数据库运维案例与教程,敬请关注我们主页。
展开
-
日志繁忙导致UPDATE语句挂起
某天运行一条很普通的UPDATE语句:update mbs7_ar.Ys_PackageCashFlow set IsApplyCheck=1 where Id = 72648;卡在那里半天没运行完查看该语句的执行计划也是正常:Execution Plan----------------------------------------------------------Plan hash...原创 2019-10-27 22:14:01 · 178 阅读 · 0 评论 -
Oracle分布式查询语句的优化
分析:由于优化器无法判断或获得远端表的统计信息,故原执行计划默认会采取把远程表(无论大小)拉到本地再连接的方式执行,这样如果远程表较大的情况将会比较缓慢,像上述查询耗时在1分钟以上。原SQL语句:Select Wb.*, (Select Wi.Nextarrivedate From Mbs7_Oms.Xs_Warearriveinfo@Dc.Moonbasadb.Com Wi ...转载 2019-10-26 21:35:51 · 547 阅读 · 0 评论 -
Oracle SQL执行计划异常解析的处理方法
现象:该语句一直以来都比较高效,执行计划用了索引范围扫描后经历三次嵌套循环,可在2秒内返回结果,但今天经同事反映却走了1分多钟!原SQL语句:Select * From (Select Rownum As Rownumber__, t.* From (Select T1.Orderdate As "OrderDate", T1...转载 2019-10-26 21:02:26 · 1352 阅读 · 0 评论 -
SQL隐式转换带来的性能问题
碰到一SQL异常慢,从执行计划来看,走了正常的索引,经过进一步分析:原SQL语句:SELECT ROWNUM AS ROWNUMBER__,T.* FROM (Select T1.ID AS "InvMainID", T2.CONSIGNCODE AS "ConsignCode", ...原创 2019-10-26 20:43:26 · 475 阅读 · 0 评论 -
Merge into引用序列的限制
遇到现象:该PLSQL块服务运行正常,但表S_VipShopStock的主建出现严重跳号,运行第一次max(id)为600,下一次执行id为1200,经过重建序列并且把cache参数改为空也不能解决问题。原服务(2秒执行一次):beginmerge into mbs7_oms.XS_VipShopStock a using(Selectc.stylecode,c.warecode,...原创 2019-10-26 20:33:39 · 1574 阅读 · 1 评论 -
DBA紧急排杀脚本-救火模式
作为一个压力山大的DBA,很多时候需要面对处理一些紧急突发的救火任务,当业务出现异常,性能接近瘫痪的夺命一刻,需要果断出击,把系统业务的影响减少到最小,至于原因分析,可以交到后续分析,下面将针对不同的困境,作出排杀处理:1,批量杀掉oracle连接进程:这种情况是终极绝招,在面对性能将要瘫痪的局面,可以立刻解决问题,但正在等待的业务或事务会被强行终止,需要重新请求!ps -ef | grep ...转载 2019-11-28 09:47:18 · 558 阅读 · 2 评论 -
使用SQL调优包抽取绑定变量值
最近在用户案例分析中,需要解析一下SQL的绑定变量以分析SQL逻辑,通过wrh$_sqlstat的BIND_DATA可以将Oracle存储的绑定变量分析出来。使用DBMS_SQLTUNE包可以很容易实现这个目的:select dbms_sqltune.extract_bind(bind_data, 1).value_string || '-' || dbms_sqltune.extract_b...原创 2019-10-25 12:22:27 · 218 阅读 · 0 评论 -
表设计乱用LOB字段,查询带来严重的性能影响!
今天反映一个SQL查询时间大概2-3分钟:SELECT * FROM (SELECT ROWNUM AS ROWNUMBER__, T.* FROM (Select T1.CONSULTINGCODE AS "ConsultingCode", T1.CATEGORY AS "Category", ...原创 2019-10-25 12:22:40 · 827 阅读 · 0 评论