1 / 28
文档名称:

数据库有优化案例培训.ppt

格式:ppt   大小:190KB   页数:28页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据库有优化案例培训.ppt

上传人:63229029 2017/6/28 文件大小:190 KB

下载得到文件列表

数据库有优化案例培训.ppt

相关文档

文档介绍

文档介绍:ICD数据问题总结培训
李凌志 37090
CONTENTS
重大事故总结
重大事故分类
主要数据库问题
数据库案例
总结
Page 2
发生局点
问题描述
深圳联通
客服数据库
由于低性能的SQL语句频繁调用,导致数据库重启,业务中一个半小时,
优化SQL后问题才解决
广州联通
客服数据库
由于SQL语句引起两次数据库的IDLE为0,导致工作流、知识库停止使用,
数据库重新启动,业务中断半个小时
福建移动
客服数据库
由于索引未及时创建,导致业务中断半个小时,删除部分历史数据后,
重建索引,问题解决
天津移动
客服数据库
MINFO的关键索引未创建导致,对应的SQL语句非常消耗资源,来话接入很慢,小型机的IDLE为0,创建索引后问题解决
深圳电信
客服数据库
SQL语句索引使用不合理,引起数据库的IDLE长时间为0,座席无法嵌入,业务中断半个小时候
海南移动
客服数据库
人为删除流程调用的一个表,导致存储过程失效,引起业务中断半个小时,重新创建表、恢复数据后问题解决
浙江金华
114系统
人为删除所有存储过程,然后重新加载,导致座席调用的接入失败,导致业务中断5分钟
山西移动
客服数据库
存储过程未及时加载,触发ORACLE的BUG,导致人工业务中断一个半个小时
陕西联通
客服数据库
低性能的SQL语句引起小型机的IDLE长时间为0,导致来话接入非常慢
新疆电信
客服数据库
诸多有问题的SQL语句引起数据库的IDLE长时间为0,通过手工杀数据库的进程,维持系统运行
2006年与数据库相关的事故、重大事故
Page 3
数据库问题总结
SQL性能问题,是引起重大事故的主要原因
人为操作不规范,也是引起重大事故的原因
ORACLE的BUG,引起业务中断诱发重大事故
Page 4
数据库性能案例
局点新疆电信
日期 20060614
表现症状
座席接入很慢,数据库的IDLE几乎为0,IOWAIT到达60%。
SQL语句写法有问题
索引使用不合理,使用的效率比较低
对大表、分区表的查询,没有使用到索引
分区表的查询,没有添加分区条件
数据库参数配置不合理
db_block_buffers 的值设置太小。
问题解决情况:通过优化后,使系统的cpu的idle由0左右提升到业务高峰期的40%。
Page 5
主要有问题的SQL-大表的查询没有使用到索引
SELECT MAX()
FROM MONINFO T
WHERE = :b1 AND PARTID = :b2
问题描述
该语句虽然按分区条件查询,EPTERNO 上创建索引,导致对整个分区扫描
优化方式对该字段创建分区索引,避免对分区扫描
create index epterno on monInfo(ACCEPTERNO)
online nologging tablespace service_hist_idx
Page 6
主要有问题的SQL-对分区表查询没有使用到分区条件
SELECT COUNT(*) FROM T_AG_RECORDFILE
WHERE SERIALNO = :b1
问题描述: 该表T_AG_RECORDFILE是分区表,数据量非常大,上面的查询,虽然用到了流水号对应的索引,但是没有添加分区条件,导致对每个分区都访问,增加了系统的开销。
优化方式:添加按分区条件查询
SELECT COUNT(*) FROM T_AG_RECORDFILE WHERE SERIALNO = :b1 AND PARTID=substr(:b1,5,4)
Page 7
主要有问题的SQL-索引创建和使用不合理
SELECT 1 FROM T_WF_SKILLSTAFFAUTH T
WHERE = :b1 AND = :b2
问题描述:该表存在字段SKILLID的单独索引以及SKILLID和STAFFNO的组合索引。上面的SQL语句通过SKILLID字段的单独索引访问,效率比较低。
优化方式:
索引1 create index ix_skillid on T_WF_SKILLSTAFFAUTH(SKILLID)
索引2 create index ix_skillid on T_WF_SKILLSTAFFAUTH(SKILLID,STAFFNO)
当字段SKILLID单独出现在查询条件中时,可以通过索引2代替索引1,而这两个索引同时存在的时,ORACLE优先使用单个字段的索引,因此索引1是多余的,通过删除字段SKILLID对应的单独索引,使SQL语句使用到复合索引
Page 8