欢迎光临
我们一直在努力

使用SQLBooster工具分析Oracle性能问题

问题现象

下午开发人员反映,一个测试环境数据库访问非常慢,让我帮忙分析原因。

正好刚装了
SQLBooster
,通过它来分析,顺便熟悉一下它的使用。

原因分析

获取等待事件

数据库慢的话首先看等待事件,在
SQLBooster
主界面点开“事件排行”,界面显示
TOP5
等待事件如下:

其中
row cache lock
排第一。

分析阻塞session

出现
session lock
,通过主界面的“阻塞树”,可以查看
session
阻塞的情况。

不过这些
session
阻塞在动态变化,且并没有执行
SQL

查看当前的
active session
如下,
session
中可以灵活根据条件过滤:

分析等待事件的详细信息

对于
  row cache lock
等待事件,我们要获取
session

P1
参数。


P1
参数去
v$rowcache
中去查询参数名称,发现是“
dc_users
”。


dc_users
相关的,通常是由于用户登录引发。从审计视图中,查看当天的登陆审计,发现错误码
ORA-1017
占了绝大部分。

这个错误是用户名密码错误。

那么问题至此就清楚了,一台客户端用
jdbc
连接数据库,但是由于配置文件中密码录错了,反复重连。

而且配置了连接池,所以一瞬间有多个连接请求连接数据库。进而引起数据库响应缓慢。

处理办法


sqlnet.ora
中将该客户端的
IP
加入访问黑名单,性能问题消失。然后联系该客户端的开发人员,修改
jdbc
配置文件。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。