为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

oracle数据库优化报告

2020-09-07 8页 doc 144KB 1阅读

用户头像 个人认证

建梅

教育

举报
oracle数据库优化报告oracle数据库优化报告目录1、概述随着应用软件用户负载的增加和愈来愈复杂的应用环境,操作系统的各项性能参数、数据库的使用效率、用户的响应速度、系统的安全运行等性能问题逐渐成为系统必须考虑的指标之一。性能测试以及优化通常通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试,用来检测系统是否达到用户提出的性能指标,及时发现系统中存在的瓶颈,最后起到优化系统的目的。随着需求不断增加,特别是复杂逻辑的需求,一旦出现高并发量时,也将可能导致数据库主机无法承载,因此数据库优化亟待解决。2、数据库优化部分...
oracle数据库优化报告
oracle数据库优化目录1、概述随着应用软件用户负载的增加和愈来愈复杂的应用环境,操作系统的各项性能参数、数据库的使用效率、用户的响应速度、系统的安全运行等性能问题逐渐成为系统必须考虑的指标之一。性能测试以及优化通常通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试,用来检测系统是否达到用户提出的性能指标,及时发现系统中存在的瓶颈,最后起到优化系统的目的。随着需求不断增加,特别是复杂逻辑的需求,一旦出现高并发量时,也将可能导致数据库主机无法承载,因此数据库优化亟待解决。2、数据库优化部分从2018年1月份开始跟踪及分析,发现托管区数据库在环境、及SQL三方面,都存在不少问题。在SQL类优化中,本地化代码编写和设计不良,是比较明显的问题。下面将分成环境、设计、SQL优化三类进行持续分析,并给出相关建议、整改方案、整改进度。、环境优化 被关闭zonghe托管区数据库统计信息未自动收集,如果未打开收集,会对系统性能造成较大的影响。需要开启统计信息开启方法如下:--执行???????????BEGIN?(client_name=>'autooptimizerstatscollection',?????????????????????????????operation??=>NULL,?????????????????????????????window_name=>NULL);END;部分索引失效需要将索引进行删除。删除命令参考如下:dropindexindex_name;、设计优化设计类问题概述 序号 类型 问题描述 1 表 ZJ_KZH_DATE、ZJ_CRM_S_ORDER_GATHER等本地表,设计了大量的V1,V2,需要开发人员核对需求 2 索引 索引定义较混乱,常与其他表进行连接的表,在连接字段上没有建立索引 3 sql语句 sql语句不规范,SELECT子句经常使用'*' 4 关键字 表中查询经常使用in,notin,对数据库性能产生影响设计类问题优化建议1、对于表的创建开发人员需要与业务人员确认后再定义2、经常与其他表进行连接的表,在连接字段上应该建立索引3、索引应该建在选择性高的字段上。例如:表示性别的数据列,由于只有男女两种值,就属于选择性低4、SELECT子句中避免使用'*':ORACLE在解析的过程中,会将'*'依次转换成所有的列名,这个工作是通过查询数据字典完成的,这意味着将耗费更多的时间5、sql语句用大写的:因为oracle总是先解析sql语句,把小写的字母转换成大写的再执行。另外,在java代码中尽量少用连接符“+”连接字符串!6、用EXISTS替代IN、用NOTEXISTS替代NOTIN:在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下,使用EXISTS(或NOTEXISTS)通常将提高查询的效率。在子查询中,NOTIN子句将执行一个内部的排序和合并。无论在哪种情况下,NOTIN都是最低效的(因为它对子查询中的表执行了一个全表遍历)。为了避免使用NOTIN,我们可以把它改写成外连接(OuterJoins)或NOTEXISTS。、SQL优化SQL_ID=7gf3typgc469aSQL的100%的数据库时间在CPU、I/O和集群等待,此delete语句消耗大量的CPU资源和产生大量的IO。deletefromCASE_RESULT_INFOwheret_time<to_date('2018-04-01','yyyy-mm-dd')分析排查:1、表中一共1千万条数据2、运行时间过长3、表为普通表,未根据时间t_time分区修改意见:根据时间字段t_time按照每个月一个分区的方式来创建一个范围分区partitionbyrange(t_time)(partitiontable_name_2018_1valueslessthan(to_date('01/01/2018','dd/mm/yyyy')),partitiontable_name_2018_2valueslessthan(to_date('01/01/2018','dd/mm/yyyy')),partitiontable_name_2018_3valueslessthan(to_date('01/01/2018','dd/mm/yyyy')),partitiontable_name_2018_4valueslessthan(to_date('01/01/2018','dd/mm/yyyy')),partitiontable_name_2018_5valueslessthan(to_date('01/01/2018','dd/mm/yyyy')),partitiontable_name_2018_6valueslessthan(to_date('01/01/2018','dd/mm/yyyy')),partitiontable_name_2018_7valueslessthan(to_date('01/01/2018','dd/mm/yyyy')),partitiontable_name_2018_8valueslessthan(to_date('01/01/2018','dd/mm/yyyy')),partitiontable_name_2018_9valueslessthan(to_date('01/01/2018','dd/mm/yyyy')),partitiontable_name_2018_10valueslessthan(to_date('01/01/2018','dd/mm/yyyy')),partitiontable_name_2018_11valueslessthan(to_date('01/01/2018','dd/mm/yyyy')),partitiontable_name_2018_12valueslessthan(to_date('01/01/2018','dd/mm/yyyy')));这样按照月份删除数据的时候,我们可以:  altertabletable_nametruncatepartitiontable_name_2018_1;SQL_ID=bdcfdz26x5hm9该语句仅节点+1在7天内就执行+255130+次,平均每次+秒,两节点合计7天执行50多万次selectkey_word fromcust_zj_declarationawhereREASON_SUB_TYPEisnotnullandIS_RECOMMEND_CLERK=1andrownum<=10orderbyCLERKSORT;分析排查:1、CUST_ZJ_DECLARATION表记录有100万条2、IS_RECOMMEND_CLERK的类型为varchar2类型3、IS_RECOMMEND_CLERK列有索引修改意见:将IS_RECOMMEND_CLERK列的VARCHAR2类型修改为NUMBER型,因为里面只放0和1两个取值,其中=1仅返回10条以内,0几乎返回所有记录。适合用索引!IS_RECOMMEND_CLERK列有索引,只是因为是VARCHAR2类型的,产生了类型转换,用不到索引。如果实在无法修改类型,则只有将andIS_RECOMMEND_CLERK=1改为andIS_RECOMMEND_CLERK='1'3、数据库优化本次针对数据库在环境、设计及SQL的三方面优化建议,更多的是给出一些合理化的建议和意见,毕竟是生产库,所以在得到甲方领导与厂商ISV的许可,并且我们在测试库中做过测试,而且制定回退的情况下才能对生产数据库和系统进行优化操作。
/
本文档为【oracle数据库优化报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索