还剩5页未读,继续阅读
文本内容:
2.
2.
1.
2.3SQL5」
2.
52.
3.2SQL_ID=bdcfdz26x5hm
37、概述1随着应用软件用户负载的增加和愈来愈复杂的应用环境,操作系统的各项性能参数、数据库的使用效率、用户的响应速度、系统的安全运行等性能问题逐渐成为系统必须考虑的指标之一性能测试以及优化通常通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试,用来检测系统是否达到用户提出的性能指标,及时发现系统中存在的瓶颈,最后起到优化系统的目的随着需求不断增加,特别是复杂逻辑的需求,一旦出现高并发量时,也将可能导致数据库主机无法承载,因此数据库优化亟待解决、数据库优化部分2从年月份开始跟踪及分析,发现托管区数据库在环境、设计及三方面,都存在20181SQL不少问题在类优化中,本地化代码编写和设计不良,是比较明显的问题下面将分成环境、SQL设计、优化三类进行持续分析,并给出相关建议、整改方案、整改进度SQL、环境优化
2.1被关闭
2.
1.1托管区数据库统计信息未自动收集,如果未打开收集,会对系统性能造成较大的影响zonghe自动收集统计信息居然被关闭了,如下,
1.JOB_NAME PROGRAM_NAME STATEENABLEDGATHER_STATSJOB GATHER_STATS_PROG DISABLEDFALSE.有如此多的对象显示很久或者根本就没有收集2OWNER COUNT*BASEDBA BASEDBA_ZJ BOSSWGBOSSWGZJ DBSNMPOUTLN PERFSTAT8073181227095221需要开启统计信息开启方法如下:-执行BEGIN dbms_auto_task_admin.enableclient_name=auto optimizerstatscollection\operation=NULL,window_name=NULL;END;OWNER INDEXNAME TABLENAME PARTITIONNAME ST.ATUSBOSSWG IDXMERGE ALARM MSG IDNE\\T NEAL ARAIMSG PART1212UNUSABLE部分索引失效
2.
1.2BOSSWGIDX MERGE ALARM MSG ID NEW NE ALARM MSG PART1211UNUSABLEBOSSWG IDXMERGE ALARM MSG ID NEW NE ALARM MSG PART1210UNUSABLEBOSSWG IDXMERGEALARM MSG ID NEW NE ALARM MSG PART1209UNUSABLEBOSSWG IDX ALARM MSGID NEWNE ALARMMSG PART1212UNUSABLEBOSSWG IDXALARMMSGID NEWNE ALARMMSG PART1211UNUSABLEBOSSWG IDXALARMMSGIDNEWNEALARMMSGPART1210UNUSABLEBOSSWG IDXALARMMSGIDNEWNEALARMMSGPART1209UNUSABLEBOSSWG ZJIDXALARMMSGIDNEWNEALARMMSGPART1212UNUSABLE需要将索引进行删除删除命令参考如下:drop indexindex_name;、设计优化
2.2设计类问题概述
2.
2.1序号类型问题描述、等本地表,ZJ KZHDATE ZJCRM SORDER GATHER表1设计了大量的需要开发人员核对需求VI,V2,索引索引定义较混乱,常与其他表进行连接的表,在连接2字段上没有建立索引语句语句不规范,子句经常使用sql sqlSELECT3关键字表中查询经常使用对数据库性能产生影响4in,notin,设计类问题优化建议
2.
2.
2、对于表的创建开发人员需要与业务人员确认后再定义
1、经常与其他表进行连接的表,在连接字段上应该建立索引
2、索引应该建在选择性高的字段上例如表示性别的数据列,由于只有男女两种值,就3属于选择性低、子句中避免使用,*,在解析的过程中,会将,*,依次转换成所有4SELECT ORACLE的列名,这个工作是通过查询数据字典完成的,这意味着将耗费更多的时间、语句用大写的因为总是先解析语句,把小写的字母转换成大写的再执行5sql oraclesql另外,在代码中尽量少用连接符+”连接字符串!java、用替代、用替代在许多基于基础表的查询中,为了6EXISTS INNOT EXISTS NOT IN满足一个条件,往往需要对另一个表进行联接.在这种情况下,使用或通EXISTSNOT EXISTS常将提高查询的效率在子查询中,子句将执行一个内部的排序和合并无论在哪种情NOT IN况下,都是最低效的因为它对子查询中的表执行了一个全表遍历为了避免使用NOTIN我们可以把它改写成外连接或NOTIN,Outer JoinsNOTEXISTS、优化
2.3SQL
2.
3.1SQL_ID=7gf3typgc469a的的数据库时间在和集群等待,此语句消耗大量的资源和SQL100%CPU,I/O deleteCPU产生大量的10delete fromCASE RESULTINFO wheret_timeto_date2018-04-01,yyyy-mm-dd分析排查、表中一共千万条数据
11、运行时间过长
2、表为普通表,未根据时间分区3t time修改意见根据时间字段按照每个月一个分区的方式来创建一个范围分区t_timepartition byranget_time partition table_name_20181values lessthanto_datefO1/01/20187dd/mm/yyyy,partition5table_name_2018_2values lessthanto_datefO1/01/20187dd/mm/yyyy,partition,table_name_2018_3values lessthanto_date!01/01/2018,/dd/mm/yyyy,partition9table_name_2018_4values lessthanto_datefO1/01/20187dd/mm/yyyy,partition,table_name_2018_5values lessthanto_date!01/01/20187dd/mm/yyyy,partition table_name_201856values lessthanto_datefO1/01/20187dd/mm/yyyy,partition table_name_2018_7values less9thanto_datefO1/01/20187dd/mm/yyyyf partition table_name_2018_8values lessthanto_datefO,1/01/20187dd/mm/yyyy!partition table_name_2018_9values lessthanto_date101/019/20187dd/mm/yyyyf partitiontable_name_2018_10values lessthanto_datefO,1/01/20187dd/mm/yyyy,partitiontable_name_201811values lessthanto_date!01/019/20187dd/mm/yyyy*,partitiontable_name_2018_12values lessthanto_datefO1/01/20187dd/mm/yyyyf;这样按照月份删除数据的时候,我们可以alter tabletable nametruncate partitiontable name20181;
2.
3.2SQL_ID=bdcfdz26x5hm9该语句仅节点在天内就执行次,平均每次秒,两节点合计天执行多+17+255130+
2.2+750万次select key_wordfrom custzj declarationawhere REASONSUB TYPEis notnulland IS_RECOMMEND_CLERK=1and rownumv=10order byCLERK SORT;分析排查:、表记录有万条1CUST ZJDECLARATION
100、的类型为类型2IS_RECOMMEND_CLERK varchar
2、歹有索弓3IS_RECOMMEND_CLERK UIt.column_name.t.colunni_position t.DESCEND fromuser_ind_columiis t::where table__nanie=,CUST_ZJ_DECLARAIONTTABLE.NAME INDEX_\AKIE COLfyIN_NAME COLU,IX_POSITION DESCENDorderby table_nanie.index_name.coluinn_position:CUST_ZJ_DECL.AR.ATION IDX_CUST^_ZJ_SUB_ST.AFF_ID SUB\UT_STAFFJD1ASCCUST_ZJ_DECLAKATION IDX_DECLARE_CLERK IS_RECOND.IEND_CLERK1ASCCUST_ZJ_DECL.AKATION DX_SUB\nT_TIME_DESC SUBNnT_TIME1ASCCUST_ZJ_DECLAKATION FLOWJD1ASCCUSI_ZJ_DECLARATION IXDEX_SERIAL SERIAL1ASC修改意见:将列的类型修改为型,因为里面只放IS_RECOMMEND_CLERK VARCHAR2NUMBER0和两个取值,其中仅返回条以内,几乎返回所有记录适合用索弓1=1100歹有索弓|,只是因为是类型的,产生了类型转换,用|!IS_RECOMMEND_CLERK UVARCHAR2不到索引如果实在无法修改类型,则只有将改为and IS_RECOMMEND_CLERK=1andIS_RECOMMEND_CLERK=f V、数据库优化总结3本次针对数据库在环境、设计及的三方面优化建议,更多的是给出一些合理化的建议和SQL意见,毕竟是生产库,所以在得到甲方领导与厂商的许可,并且我们在测试库中做过测试,ISV而且制定回退计划的情况下才能对生产数据库和系统进行优化操作。
个人认证
优秀文档
获得点赞 0