Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

7

主题
1#
发表于 2014-6-20 16:08:00 | 查看: 3814| 回复: 7
Solaris 10 SPARC
11.2.0.1

生产库突然有一个很简单的SQL执行很慢:
AWR-性能问题

正常情况下的执行时间:
AWR-正常

SQL文本:

SELECT MAX(T1.RQ)
  FROM ADB_ZW_ZHTGYE T1
WHERE T1.ZQDM = '040801'
   AND T1.KMDM LIKE '03%'
   AND T1.KMDM <> '0300'

该表大概2亿条记录,按照RQ进行RANGE分区,有一个复合索引  INDxx(col1,col2,ZQDM,KMDM),手动执行该SQL,跑了900s左右,做了10046发现执行计划没有改变:

Rows     Row Source Operation
-------  ---------------------------------------------------
      1  SORT AGGREGATE (cr=919274 pr=919274 pw=0 time=0 us)
        1   FIRST ROW  (cr=919274 pr=919274 pw=0 time=0 us cost=1186 size=21 card=1)
          1    PARTITION RANGE ALL PARTITION: 38 1 (cr=919274 pr=919274 pw=0 time=0 us cost=1186 size=21 card=1)
            1     INDEX FULL SCAN (MIN/MAX) IDX_ADB_ZW_ZHTGYE PARTITION: 38 1 (cr=919274 pr=919274 pw=0 time=0 us cost=1186 size=21 card=1)(object id 98509)

但是有大量的“db file sequential read”等待事件

在ADG备库执行这个SQL 40s左右,10046里唯一不同的是
生产:
==========
call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.01       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        1    102.58     924.93    919274     919274          0           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        3    102.59     924.93     919274     919274          0           1


ADG:
==========
call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        1     46.67      46.67          0     931866          0           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        3     46.67      46.67          0     931866          0           1



看起来似乎是物理读造成的,大神儿们帮看看呗。。

10046-primary.txt (8.21 KB, 下载次数: 801) 10046-standby.txt (11.1 KB, 下载次数: 820)

2#
发表于 2014-6-20 16:12:21
需要2侧 当时完整AWR做对比

回复 只看该作者 道具 举报

3#
发表于 2014-6-20 16:14:28
ads_20140618.html (911.47 KB, 下载次数: 788) ads_20140620.html (847.7 KB, 下载次数: 753)


业务正常和出现问题时的AWR对比

回复 只看该作者 道具 举报

4#
发表于 2014-6-20 16:15:12
Maclean Liu(刘相兵 发表于 2014-6-20 16:12
需要2侧 当时完整AWR做对比

ML,AWR已经传上来了。

回复 只看该作者 道具 举报

5#
发表于 2014-6-20 16:18:29
这个问题 我不细看了, 看了AWR开头 我认为大致知道什么情况了

你的生产

        Begin        End               
Buffer Cache:         5,632M         5,632M        Std Block Size:         8K
Shared Pool Size:         9,984M         9,984M        Log Buffer:         130,040K

memory_target        96368328704

你的ADG
        Begin        End               
Buffer Cache:         22,016M         13,568M        Std Block Size:         8K
Shared Pool Size:         9,984M         9,984M        Log Buffer:         130,040K

memory_target        96368328704


虽然 memory_target        的值是一样的,但最后的结果是 让你看到的现象天差地别

回复 只看该作者 道具 举报

6#
发表于 2014-6-20 16:39:04
Maclean Liu(刘相兵 发表于 2014-6-20 16:18
这个问题 我不细看了, 看了AWR开头 我认为大致知道什么情况了

你的生产

谢谢ML..
刚没说清楚,这两个AWR是生产库不同时段的,不大明白AMM管理内存时,为什么Buffer Cache会有这么大的变化??

回复 只看该作者 道具 举报

7#
发表于 2014-6-21 16:41:09
iniestandroid 发表于 2014-6-20 16:39
谢谢ML..
刚没说清楚,这两个AWR是生产库不同时段的,不大明白AMM管理内存时,为什么Buffer Cache会有这 ...

实际就是AMM 就是有这么大的主观能动性。

回复 只看该作者 道具 举报

8#
发表于 2014-6-24 10:22:15
谢谢ML,确实就是这个问题造成的,AMM将memory_target的大部分都分给了PGA,后来手动设置了sga_target参数后问题得到解决!

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-6-15 14:32 , Processed in 0.053056 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569