数据库优化报告模板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库优化报告模板
系统数据库优化报告模板
版本记录
1.概述
本文档主要对系统实际运行过程中的数据库出现的性能问题进行分析优化
2.SQL语句类优化
2.1把SQL语句中使用SELECT * 的语句该成SELECT 列名,原因是:ORACLE在解析的过
程中,会将' * '依次转换成所有的列名,这个工作是通过查询数据字典完成的,这意味着将耗费更多的时间。
2.2把SQL语句中的小写改为大写,原因是:oracle总是先解析sql语句,把小写的字母
转换成大写的再执行。
2.3对于保存多条数据的SQL语句使用批处理语句保存,减少访问数据库的次数
2.4联合查询优化:
--No.1 tableA 100w条记录tableB 1w条记录执行速度十秒级SELECT COUNT(*) FROM tableA,tableB;
--No.2 执行速度百秒级甚至更高
SELECT COUNT(*) FROM tableB,tableA;
因此我们选择No.2的方式。
2.5Where子句后面的条件过滤有讲究
ORACLE对where子句后面的条件过滤是自下向上,从右向左扫描的,所以和From 子句一样一样的,把过滤条件排个序,按过滤数据的大小,自然就是可以过滤掉最大数量记录的条件必须写在WHERE
子句的末尾最下面,最右边,依次类推。
3.存储过程类优化
3.1同步数据优化:原方案用java对于一条数据先执行select语句在数据库查出所有记
录删除,再插入一条,每晚同步数据需要平均20分钟;
优化方案:创建存储过程,创建临时表,批量删除原表数据,再将临时表数据插入数据库表。
每晚同步数据时间缩短为平均8分钟。
4.数据库索引优化
注:总是使用索引的第一个列,如果索引是建立在多个列上, 只有在它的第一个列(leading column)被where子句引用时,优化器才会选择使用该索引. 这也是一条简单而重要的规则,当仅引用索引的第二个列时,优化器使用了全表扫描而忽略了索引。
4.1查询频率很高的字段,加入索引,提高查询效率;
4.2某字段有null所以最好不加索引;。