标题:
大话系统架构优化项目(9)
[打印本页]
作者:
look_w
时间:
2018-12-14 16:45
标题:
大话系统架构优化项目(9)
3.2.5数据库优化
【案例】某企业内部核心业务系统数据库出现业务高峰CPU使用率居高不下,存在大数据量查询、多表连接造成查询性能下降、表索引建立不合理等问题,最终通过以下办法将业务高峰期CPU使用率控制在30%内:
在SQL*PLUS下执行下面语句:
SQL> set line 1000 --设置每行显示1000个字符
SQL> set autotrace traceonly --显示执行计划和统计信息,但是不显示查询输出
执行效率低下SQL语句:
select variablein0_.TOKENVARIABLEMAP_ as TOKENVAR7_1_
from JBPM_VARIABLEINSTANCE variablein0_
where variablein0_.TOKENVARIABLEMAP_ = '4888804'
查看优化前的执行计划:
执行计划
----------------------------------------------------------
Plan hash value: 3971367966
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time|
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 12 | 612 | 12408 (2)| 00:02:29 |
|* 1 | TABLE ACCESS FULL| JBPM_VARIABLEINSTANCE | 12 | 612 | 12408 (2)| 00:02:29 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("VARIABLEIN0_"."TOKENVARIABLEMAP_"=4888804)
统计信息
----------------------------------------------------------
1 recursive calls
1 db block gets
48995 consistent gets
48982 physical reads
0 redo size
1531 bytes sent via SQL*Net to client
248 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
9 rows processed
从执行计划看该语句缺少索引导致全表扫描。消耗总一致性读占用为:48995,平均每行一致性读:48995/9=5444,物理读为:48982,不满足正常性能需要。创建索引优化后的执行计划:
统计信息
----------------------------------------------------------
1 recursive calls
0 db block gets
6 consistent gets
4 physical reads
0 redo size
1530 bytes sent via SQL*Net to client
248 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
9 rows processed
从执行计划看该语句消耗总一致性读占用为:6,平均每行一致性读:6/9=0.67,物理读为:4,为比较高效的SQL。
一般认为平均每行一致性读超过100的为执行效率比较低的SQL,10以内为执行效率比较高的SQL。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0