Oracle-RAC-11g-r2性能调优---解决查询慢问题

  • 格式:doc
  • 大小:84.00 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

知也无涯

Oracle RAC 11g r2查询太慢

---------------------------------------------------

Oracle RAC 11g r2查询太慢

Problem Description

---------------------------------------------------

Redhat 5 双机

测试1:双实例,ASM磁盘组包含3个磁盘(SAN)。在其中一个实例中执行:SELECT c.operaccount || ':' || c.PASSWORD || '@' || a.PATH,

a.dll, a.description, '1.gif'

FROM hcs2000.dllnames a, hcs2000.operdllnames b, hcs2000.operaccount c WHERE a.dllnameid = b.dllnameid

AND b.operid = c.operid

AND upper(c.operaccount) = USER

ORDER BY a.dllnameid;

第一次查询,25秒。第二次查询,3秒。第三次查询,1.6秒。过10分钟后查询,26秒。

测试2:在其中一台主机上创建基于ASM磁盘组的单个实例,

第一次查询,14秒。第二次查询,3秒。第三次查询,0.7秒。第四次查询,3.5秒。

测试3:在其中一台主机上创建基于文件系统的单个实例,

第一次查询,5秒。第二次查询,2.2秒。第三次查询,2.1秒。

测试4:在PC的VMware虚拟机里面单实例查询,只需0.001秒或0秒。

测试1中的查询太慢了,请问怎么查看问题原因,如何调优?

Dear customer,

请您执行以下动作:

如果可以,请在您提到的4个场景下都生成以下文件,并请添加您

的说明后,作为附件更新到SR上:

ACTION PLAN

-----------------------

1. Please generate 10046 trace for your sql:

SQL>connect username/password

SQL>alter session set timed_statistics = true;

SQL>alter session set statistics_level=all;

SQL>alter session set max_dump_ = unlimited;

SQL>alter session set events '10046 trace name context forever, level 12';

SQL>

SQL>alter session set events '10046 trace name context off';

2.Format your 10046 trace file:

$tkprof

例如

生成的文件应该是在您的udump路径下面。

寻找UDUMP路径,请参考

SQL> show parameter user_dump_dest

之后,format您的文件

$cd /u01/OracleAPP/oracle/admin/R1020/udump

$ls -ltr

$tkprof r1020_ora_9638.trc 9638.output

3.请提交您 10046 trace 以及 tkprof 输出文件9638.output

Dear customer,

目前来看,您问题表中遇到了并行的配置。为了进一步诊断,请执行以下动作,并提供输出结果:

ACTION PLAN

-----------------------

请分别在测试2:在其中一台主机上创建基于ASM磁盘组的实例

以及

测试4:在PC的VMware虚拟机里面单实例查询

的测试环境中执行以下动作

SQL> show parameter parallel_min_servers

SQL> select table_name,degree from dba_tables where

table_name='dllnames';

SQL> select table_name,degree from dba_tables where

table_name='operdllnames';

SQL> select table_name,degree from dba_tables where

table_name='operaccount';

并请提供以上测试2, 4环境的数据库alert 日志位于bdump下

SQL> show parameter background_dump_dest

The alert.log is named as alert_.log.

Name

--------

=== ODM Data Collection ===

SELECT c.operaccount || ':' || c.PASSWORD || '@' || a.PATH,

a.dll, a.description, '1.gif'

FROM dllnames a, operdllnames b, operaccount c

WHERE a.dllnameid = b.dllnameid

AND b.operid = c.operid

AND upper(c.operaccount) = USER

ORDER BY a.dllnameid

call count cpu elapsed disk query current rows

------- ------ -------- ---------- ---------- ---------- ---------- ----------

Parse 1 0.00 0.00 0 0 0 0

Execute 1 0.01 11.14 0 3 0 0

Fetch 2 0.03 2.24 0 0 0 1

------- ------ -------- ---------- ---------- ---------- ---------- ----------

total 4 0.05 13.39 0 3 0 1

Misses in library cache during parse: 1

Optimizer mode: ALL_ROWS

Parsing user id: 5

Rows Row Source Operation