Oracle AWR之-enq: TX - allocate ITL entry-程序员宅基地

技术标签: 数据库  

今天收到压力测试期间awr报告,测试人员要我看看数据库是否有可以优化的地方,数据库服务器配置信息:CPU:32*8,内存:480g 单实例数据库:oracle 11.2.0.4。具体分析过程如下:

clip_image002

clip_image004

可以发现,压力测试期间出现队列锁:enq: TX - allocate ITL entry。

clip_image006

通过Segments by ITL Waits发现等待的对象为hqoa_t_busi和hqoa_t_sendfile两张表:

clip_image008

通过sql执行时间发现了关于对象hqoa_t_busi表的dml语句,基本可以确定问题是由于压力测试期间并发大量对于该对象的update语句导致的数据库问题。

到这个地方,问题似乎很清晰了,就是由于表DIRECT_DEBIT_REQUEST的ITL的设置不能够满足并发事务的需求而导致的等待。数据块是oracle能够发出的最小I/O单位。在数据块中,数据块头部的ITL信息是至关重要的。
每当一个事务需要修改一个数据块时,需要在数据块头部获得一个可用的ITL槽,其中记录了当前事务的id,使用的undo数据块地址,还有对应的scn,事务是否提交等信息。如果一个新的事务发现ITL槽已经被使用,会重新
申请一个新的ITL槽,这个过程是动态的,进一步来说,ITL槽的设置是由ini_trans,max_trans来决定的,在10g之后,max_trans参数被忽略了。

对于initrans,maxtrans的默认值,表级为1,索引级为2.  一般来说不需要做特别的设置。可以根据业务的需要来配置。

通过查询相关信息,确定enq: TX - allocate ITL entry等待事件解决办法如下:

解决思路有3种

Increase INITRANS

A)

1) Depending on the number of transactions in the table we need to alter the value of INITRANS. here it has been changed to 50:

alter table INITRANS 50;

2) Then re-organize the table using move (alter table move;)
3) Then rebuild all the indexes of this table as below

alter index rebuild INITRANS 50;

Increase PCTFREE

If the issue is not resolved by increasing INITRANS then try increasing PCTFREE. Increasing PCTFREE holds more space back and so spreads the same number of rows over more blocks. This means that there are more ITL slots available overall :
B)

1) Spreading rows into more number of blocks will also helps to reduce this wait event.

alter table

 

  PCTFREE 40;

2) Then re-organize the table using move (alter table service_T move;)

3) Rebuild index

alter index index_name  rebuild PCTFREE 40;

A Combination of increasing both INITRANS and PCTFREE

1) Set INITRANS to 50  pct_free to 40

alter table PCTFREE 40  INITRANS 50;

2) Re-organize the table using move (alter table move;)
3) Then rebuild all the indexes of the table as below

alter index  rebuild PCTFREE 40 INITRANS 50;

对于大表,数据千万级以上的表,initrans建议设置为8~16
对于中级表,数据量在百万到千万级,initrans建议设置为4~8
对于普通的表,initrans建议设置为1~4

解决压力测试期间问题方法如下:

--update HQOA_T_BUSI set busiId= :1 , title= :2 where busiId = :3;

altertable HQOA_T_BUSI pctfree20INITRANS8;

altertable HQOA_T_BUSI move;

alterindex idx_HQOA_T_BUSI rebuildPCTFREE20INITRANS16;

begin

dbms_stats.gather_table_stats(ownname =>'OA_36',

tabname =>'HQOA_T_BUSI',

estimate_percent =>100,

cascade=>true,

degree=>20);

END;

select*from HQOA_T_BUSI;

selectcount(*)from HQOA_T_BUSI;

重新进行压力测试发现:

clip_image010

同样方法处理hqoa_t_sendfile对象后,发现数据库性能正常,而且压力测试也上去了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33836874/article/details/85872750

智能推荐

CSS 样式书写规范_css样式的写法&--seleted::before,-程序员宅基地

文章浏览阅读338次。CSS 样式书写规范编码设置采用 UTF-8 编码,在 CSS 代码头部使用:@charset "utf-8"; 注意,必须要定义在 CSS 文件所有字符的前面(包括编码注释),@charset 才会生效。例如,下面的例子都会使得 @charset 失效:/* 字符编码 */@charset "utf-8";html,body { height: 100%;}@charset "ut_css样式的写法&--seleted::before,

Opencv学习笔记(二)-----常用的处理方法_opencv 图像值为大于255的float时系统会自动做何处理-程序员宅基地

文章浏览阅读235次。opencv常用处理方法: 1.阈值处理2.平滑操作3.形态学变化1.腐蚀和膨胀1.腐蚀和膨胀4.梯度运算5.礼帽与黑帽6.图像梯度-Sobel算子7.三种算子对比_opencv 图像值为大于255的float时系统会自动做何处理

Caddy2 Go开发 高性能 配置简单 HTTPS_caddy 对websockets有-程序员宅基地

文章浏览阅读6.8k次。原文地址:http://i.scwy.net/go/2020/013117-caddy/Caddy是什么?在Caddy的官网上给出一个最简单的介绍:“Caddy是一个能自动创建HTTPS功能的HTTP/2网站服务器”。简单的一句话,突出了两大卖点,“自动创建HTTPS”和“HTTP/2”。caddy致力于成为一个易用的静态文件Web Server。Caddy的作者是来自美国的Matthew..._caddy 对websockets有

【Python】tkinter的简单使用(Tk对象、三大布局、变量、事件)_python tkinter 布局-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏34次。tkinter是Python自带的标准库,无需额外安装,如果你的Python没有tkinter,请检查你的Python是否标准版。place布局既可以绝对布局也可以相对布局,灵活性非常高,可以直接指定元素的x、y的坐标(原点为窗口或父容器左上角),注意,如果元素位置有重叠,则后布局的元素会盖住前布局的元素。tkinter的元素控件或窗口都可以调用bind()、unbind()绑定、解绑事件,第一个参数是事件的描述,第二个参数是要回调的函数名。是对事件的修饰,比如说需要的辅助按键,双击还是三击等。_python tkinter 布局

vga转换html转换器接线,绿联HDMI转VGA转换器拆解测评-程序员宅基地

文章浏览阅读3.6k次。近年,随着高清接口越来越普及,老一代VGA接口开始逐步退出历史舞台。新近推出的电脑、主机基本取消了VGA输出接口,取而代之的是HDMI、DP、Type C等接口。对于现存的VGA接口显示终端,要想继续利用起来,必须的使用接口转换器。本文是网友关于绿联HDMI转VGA转换器的详细拆解。新电脑上都不带VGA口了,想用VGA得加一个HDMI转VGA的转换器,从网上买了一个绿联的转换器,网上搜索了一下也没..._vga转hdmi拆机

spring boot 整合 resteasy+fastjson_resteasy-fastjson-provider-程序员宅基地

文章浏览阅读2.6k次。一、resteasy简介RESTEasy是JBoss的一个开源项目,提供各种框架帮助你构建RESTful Web Services和RESTful Java应用程序。它是JAX-RS规范的一个完整实现并通过JCP认证。作为一个JBOSS的项目,它当然能和JBOSS应用服务器很好地集成在一起。但是,它也能在任何运行JDK5或以上版本的Servlet容器中运行。RESTEasy还提供一个RESTE_resteasy-fastjson-provider

随便推点

opencv矩阵转eigen_OpenCV人脸识别Eigen算法源码分析-程序员宅基地

文章浏览阅读98次。1 理论基础学习Eigen人脸识别算法需要了解一下它用到的几个理论基础,现总结如下:1.1 协方差矩阵首先需要了解一下公式:共公式可以看出:均值描述的是样本集合的平均值,而标准差描述的则是样本集合的各个样本点到均值的距离之平均。以一个国家国民收入为例,均值反映了平均收入,而均方差/方差则反映了贫富差距,如果两个国家国民收入均值相等,则标准差越大说明国家的国民收入越不均衡,贫富差距较大。以上公式都是..._opencv使用eigen

Qt程序关于路径、用户目录路径、临时文件夹位置获取方法_qdir::temppath的路径-程序员宅基地

文章浏览阅读1.3k次。Qt程序关于路径、用户目录路径、临时文件夹位置获取方法   比如我们有一个程序在:  C:/Qt/examples/tools/regexp/regexp.exe1. 程序所在目录  QString QCoreApplication::applicationDirPath()  那么 qApp->applicationDirPath() 的结果是:  输出:C:/Qt/examples..._qdir::temppath的路径

powerCenter介绍-程序员宅基地

文章浏览阅读1.3w次。powerCenter基础操作_powercenter

【调参】如何为神经网络选择最合适的学习率lr-LRFinder-for-Keras_lenet训练时学习率的选择-程序员宅基地

文章浏览阅读402次,点赞8次,收藏9次。前言学习率lr在神经网络中是最难调的全局参数:设置过大,会导致loss震荡,学习难以收敛;设置过小,那么训练的过程将大大增加。如果,调整一次学习率的周期的训练完一次,那么,训练n次,才能得到n个lr的结果…,导致学习率的选择过程代价太大。有多种方法可以为学习速度选择一个好的起点。一个简..._学习率选择。【调参】如何为神经网络选择最合适的学习率lr-LRFinder-for-Keras_学习率选择-程序员宅基地。_lenet训练时学习率的选择

Windows端口占用CMD关闭端口(8080被占用)_结束所有端口占用-程序员宅基地

文章浏览阅读1k次。传统关闭端口方法,必须得记住相关命令,挺麻烦的,所以直接根据上述命令写了个工具,写成bat脚本,可以双击一键输入端口,然后输入P端口PID关闭进程,不用每次都是打开cmd输入命令,输入命令行,简便了操作。_结束所有端口占用

华为机考-配置文件恢复-C++_c 如何恢复块设备device_magic-程序员宅基地

文章浏览阅读78次。一、题目有6条配置命令,它们执行的结果分别是:注意:he he不是命令。为了简化输入,方便用户,以“最短唯一匹配原则”匹配:1、若只输入一字串,则只匹配一个关键字的命令行。例如输入:r,根据该规则,匹配命令reset,执行结果为:reset what;输入:res,根据该规则,匹配命令reset,执行结果为:reset what;2、若只输入一字串,但本条命令有两个关键字,则匹配失败。例如输入:reb,可以找到命令reboot backpalne,但是该命令有两个关键词,所有匹配失败,执行结果为_c 如何恢复块设备device_magic