欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle数据库异步IO导致查询响应缓慢

程序员文章站 2022-05-26 11:35:51
...

客户的环境是两台HP-UX ia64 B.11.31部署的一套Oracle 11.2.0.4.4 RAC Database,存储是一套EMC,一套HDS,通过赛门铁克storage

客户的环境是两台HP-UX ia64 B.11.31部署的一套Oracle 11.2.0.4.4 RAC Database,存储是一套EMC,一套HDS,通过赛门铁克storage foundation将两套存储做成镜像,实现节点之间的共享存储。前期只有一套HDS在使用,在将EMC加入到storage foundation之后,RAC的第一个节点出现查询操作缓慢的情况,包括sqlplus本地登陆缓慢,查询只有两条数据的临时表耗时12秒,数据库实例启动也非常的慢。

最终该问题通过检查等待事件的方式得以解决,,下面简单描述一下处理过程:

会话1:

在服务器本地使用sqlplus登陆数据库实例,

1).执行下面的SQL语句确定本会话的SID:

SQL> SELECT DISTINCT SID FROM V$MYSTAT;

2).执行查询2条数据的临时表(固定耗时12秒)。

会话2:

在服务器本地使用sqlplus登陆数据库实例,

执行下面的SQL语句,查询会话1在查询2条数据的临时表时发生的等待事件:

SQL> set linesize 200
SQL> set pagesize 200
SQL> col program format a30
SQL> col machine format a30
SQL> col wait_class format a30
SQL> select username,program,machine,event,wait_class from v$session where wait_class 'Idle' and sid=572


USERNAME PROGRAM MACHINE EVENT WAIT_CLASS
------------------------------ ------------------------------ ------------------------------ ---------------------------------------------------------------- ------------------------------
SYS sqlplus@rx9900a (TNS V1-V3) rx9900a asynch descriptor resize Other


该等待事件的WAIT_CLASS为Other,比较异常,从EVENT可以大概了解该等待和异步IO有一定的关系,通过在MOS上检索该EVENT找到如下一篇文章:

Bug 9829397 Excessive CPU and many "asynch descriptor resize" waits for SQL using Async IO
This note gives a brief overview of bug 9829397.
The content was last updated on: 28-JUN-2013
Click here for details of each of the sections below.

Affects:

Product (Component) Oracle Server (Rdbms)

Range of versions believed to be affected Versions >= 11.2 but BELOW 12.1

Versions confirmed as being affected

Platforms affected Generic (all / most platforms affected)

It is believed to be a regression in default behaviour thus:
Regression introduced in 11.2.0.2
Fixed:

issue is fixed in

Symptoms: Related To:

  • DISK_ASYNCH_IO
  • Description Some queries in 11.2 may exhibit higher CPU usage than earlier releases with many "asynch descriptor resize" waits occurring compared to the same SQL in earlier releases. Rediscovery Notes: Async IO is in use. The total time waiting for "asynch descriptor resize" is typically very small but with very high counts. The high wait count indicates many resizes of the number of AIO descriptors unnecessarily wasting CPU. Workaround Disable async IO. eg: Set DISK_ASYNCH_IO = false Getting a Fix