




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、oracle数据库优化报告目录1、概述32、数据库优化部分 3.2.1、 环境优化3.2.1.1 统计信息收集被关闭 3.2.1.2 部分索引失效4.2.2、 设计优化4.2.2.1 设计类问题概述 4.2.2.2 设计类问题优化建议 5.2.3、 SQL优化5.2.3.1 SQL_ID= 7gf3typgc469a5.2.3.2 SQL_ID= bdcfdz26x5hm96.3、数据库优化总结7.1、概述随着应用软件用户负载的增加和愈来愈复杂的应用环境,操作系统的各项性能参数、数 据库的使用效率、用户的响应速度、系统的安全运行等性能问题逐渐成为系统必须考虑的指 标之一。性能测试以及优化通常通
2、过自动化的测试工具模拟多种正常、峰值以及异常负载条 件来对系统的各项性能指标进行测试,用来检测系统是否达到用户提出的性能指标,及时发 现系统中存在的瓶颈,最后起到优化系统的目的。随着需求不断增加,特别是复杂逻辑的需求,一旦出现高并发量时,也将可能导致数据 库主机无法承载,因此数据库优化亟待解决。2、数据库优化部分从2018年1月份开始跟踪及分析,发现托管区数据库在环境、设计及SQL三方面,都存在不少问题。在SQL类优化中,本地化代码编写和设计不良,是比较明显的问题。下面将 分成环境、设计、SQL优化三类进行持续分析,并给出相关建议、整改方案、整改进度。2.1、 环境优化2.1.1 被关闭zon
3、ghe托管区数据库统计信息未自动收集,如果未打开收集,会对系统性能造成较大的 影响。L自动收集统计信息居然被关比了,如下:JOBNAMEPROGRAMNAMESTATE ENABLEDGATHERSIATSJOB GATHERSTATSPROG DISABLED FALSE工有如此多的对象显示很久或者根本就没有收集OWNERCOUNTf*)BASEDBA80BASEDBArZJ73BOSSWG18122BOSSWG ZJ7095DBSNNCP22OUTLN3PERfSTAT1需要开启统计信息开启方法如下:-执行BEGINdbms_auto_task_admin.enable(client_na
4、me => 'auto optimizer statscollection',operation => NULL, window_name =>NULL);END;2.1.2 部分索引失效OWNERXDE苫 NAME玷BLE NAMEP.AimON NAMZBOSSUG IDX MERGE ALARM MSG ID NEWA三 ALARH MSG PART :12LXUSABLEBOSSWCIDX MERGE ALARM MSG ID NEW NE ALARM MEG P.-VRT 1211USL'gASLEBO5SV.-GDX MERGE ALAI
5、V3G U NEW XE ALARM >bG PAKT :21(-UNUSABLEBOSSV/C-IDX MERGE ALARM VSG ID W NE ALARM MSG PART 12WUNVSABLESOSSV/GBOSSV.C3OS5V;GK &L鼻总:MSG ID 工ER工三 ALARM MSGPAJtT 1212UNUSABLEIDX ALWJ MSG 13 NEB KE .4LAEWI XLSGIDX ALARM MSG D_>TWIDX ALAEAI MSG d NFkTDX_ AL, ARKtrSG_ID_NFPART 1>1UNUSABLENL ,
6、红.辿MSGN- ALARM MSGXF ALARM *GPART 1:0UNUSABLEL?iLSAfiLEI M NAHI F需要将索引进行删除。删除命令参考如下:drop index index_name;2.2、 设计优化2.2.1 设计类问题概述厅P问题描述1表ZJ_KZH_DATE、ZJ_CRM_S_ORDER_GATHER 等本 地表,设计了大量的 V1, V2,需要开发人员核对需 求2索引索引定义较混乱,常与其他表进行连接的表,在连接字段上没有建立索引3sql语句sql语句不规范,SELECT子句经常使用'* '4关键字表中查询经常使用in, not in,对数
7、据库性能产生影响2.2.2 设计类问题优化建议1、对于表的创建开发人员需要与业务人员确认后再定义2、经常与其他表进行连接的表,在连接字段上应该建立索引3、索引应该建在选择性高的字段上。例如:表示性别的数据列,由于只有男女两种值, 就属于选择性低4、SELECT子句中避免使用'* ': ORACLE在解析的过程中,会将'* 依次转换成所有的 列名,这个工作是通过查询数据字典完成的,这意味着将耗费更多的时间5、sql语句用大写的:因为oracle总是先解析sql语句,把小写的字母转换成大写的再 执行。另外,在java代码中尽量少用连接符" + ”连接字符串!6、用
8、EXISTS替彳t IN、用NOT EXISTS替代NOT IN :在许多基于基础表的查询中,为 了满足一个条件,往往需要对另一个表进行联接.在这种情况下,使用EXISTS(或NOTEXISTS)通常将提高查询的效率。在子查询中,NOT IN子句将执行一个内部的排序和合并。无论在哪种情况下,NOT IN都是最低效的(因为它对子查询中的表执行了一个全表遍历 )。 为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS 02.3、 SQL优化2.3.1 SQL_ID= 7gf3typgc469aSQL的100%的数据库时间在CPU、I/O和集群等待,止
9、匕delete语句消耗大量的CPU资 源和产生大量的IO。delete from CASE_RESULT_INFO where t_time < to_date('2018-04-01','yyyy-mm-dd')分析排查:1、表中一共1千万条数据2、运行时间过长3、表为普通表,未根据时间t_time分区修改意见:根据时间字段t_time按照每个月一个分区的方式来创建一个范围分区partition by range(t_time)(partition table_name_2018_1 values less than(to_date('01/01
10、/2018','dd/mm/yyyy'),partition table_name_2018_2 values less than(to_date('01/01/2018','dd/mm/yyyy'),partition table_name_2018_3 values less than(to_date('01/01/2018','dd/mm/yyyy'),partition table_name_2018_4 values less than(to_date('01/01/2018',&
11、#39;dd/mm/yyyy'),partition table_name_2018_5 values less than(to_date('01/01/2018','dd/mm/yyyy'),partition table_name_2018_6 values less than(to_date('01/01/2018','dd/mm/yyyy'),partition table_name_2018_7 values less than(to_date('01/01/2018','dd/mm/yy
12、yy'),partition table_name_2018_8 values less than(to_date('01/01/2018','dd/mm/yyyy'),partition table_name_2018_9 values less than(to_date('01/01/2018','dd/mm/yyyy'),partition table_name_2018_10 values less than(to_date('01/01/2018','dd/mm/yyyy'),pa
13、rtition table_name_2018_11 values less than(to_date('01/01/2018','dd/mm/yyyy'),partition table_name_2018_12 values less than(to_date('01/01/2018','dd/mm/yyyy');这样按照月份删除数据的时候,我们可以:alter table table_name truncate partition table_name_2018_1;2.3.2 SQL_ID= bdcfdz26x5hm9该语
14、句仅节点+1在7天内就执行+255130+次,平均每次2.2十秒,两节点合计7天执行50多万次select key_wordfrom cust_zj_declaration awhere REASON_SUB_TYPE is not nulland IS_RECOMMEND_CLERK = 1and rownum <=10order by CLERK SORT;分析排查:1、CUST_ZJ_DECLARATION 表记录有 100 万条2、 IS_RECOMMEND_CLERK 的类型为 varchar2类型3、IS_RECOMMEND_CLERK 列J有索弓Iselect t tabl
15、e_name t index_neune. t colntnii_nanie T coluninjositioT t DESCEND frnm use-indch imn* tuher- Ubh nai CUST ZJ DECLAR.TTOVorder tsble nanir?.index name, colutim posilcn,tSDCX KAl;IfcCULU?-L<_>.LkCOG_L-;.&_PO6irt0(N DESCENDCUSI £>£JL.JL'JOXA£ULIS. 2J DkJJX 工匚L,上二 LLUK上-二工?C C-kPJL1 ASCCUST ZJ DECLJLRAnON* 13正1 ASCCVT ZJ DEJL. JL'JION1 A5CCV3T_ZJ_DEIM)EX_SE=UA1SERIAL1 A5C修改意见:将IS_RECOMMEND_CLERK歹用勺VARCHAR2类型修改为 NUMBER型,因为里面只放0和1两个取值,其中 =1仅返回10条以内,0几乎返回所有记录。适合用索弓|!IS_RECO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论