首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWR报告-调优数据库

AWR报告-调优数据库
EN

Database Administration用户
提问于 2011-02-14 21:00:35
回答 3查看 5.6K关注 0票数 3

我们有一个OLTP系统,下面是我们在高峰时段每天一次三天的AWR报告。我们看到很多直接路径读取;我们希望添加更多的PGA,以减少等待事件的等待时间。下面是我们11g db中的当前设置。

代码语言:javascript
复制
Sqls order by cpu

CPU Time (s) Executions  CPU per Exec (s) %Total Elapsed Time (s) %CPU %IO SQL Id SQL Module SQL Text 
7,279.38 9,694 0.75 31.50 7,297.79 99.75 0.27 0dp0c8wux0jnt    select case when max(LMA.LEAS... 
6,562.18 1,395 4.70 28.40 6,582.28 99.69 0.31 3g2kw67v3v0qs    SELECT NAME, vpd_predicates.ge... 
4,229.12 836,735 0.01 18.30 4,234.99 99.86 0.00 55a17fhdqg315 DBMS_SCHEDULER  begin :con := SELECT_POLICY_FU... 
2,683.17 968 2.77 11.61 2,605.03 103.00 7.61 dfd3gcuamscs8    select sc.Doc_ID docId , sc.DO... 
2,434.46 853,025 0.00 10.54 2,442.95 99.65 0.00 4y5m5y6y6wvzs DBMS_SCHEDULER  SELECT COUNT (*) FROM CONTACT_... 


Top 5 Timed Foreground Events 08-Feb-2011
Event   Waits   Time(s) Avg wait (ms)   % DB time   Wait Class
DB CPU      23,108      94.74    
db file sequential read 1,332,461   797 1   3.27    User I/O
direct path read    430,600 523 1   2.14    User I/O
db file scattered read  245,444 224 1   0.92    User I/O
SQL*Net more data to client 2,057,853   155 0   0.64    Network
EN

回答 3

Database Administration用户

发布于 2011-02-14 21:13:23

看起来,大约95%的等待时间都在CPU上。即使您完全消除了直接路径读取,您也会减少不到2%的总等待时间。你的等待时间减少2%似乎不太可能成为一种改善。

看看是什么消耗了所有的CPU--你有几个非常密集的CPU查询。0dp0c8wux0jnt和3g2kw67v3v0qs消耗了您系统使用的CPU的60%。您是否考虑过优化这些查询,使其使用更少的CPU?尤其是3g2kw67v3v0qs,每次执行需要花费近5秒时间。

你还能在这台机器上运行什么?SGA & PGA占机器上可用内存的6%,这意味着您可能有许多其他事情正在运行(可能有许多数据库实例)。

票数 1
EN

Database Administration用户

发布于 2011-02-14 21:17:51

直接路径读取是并行全表扫描的典型症状--您的I/O最高SQL是什么?为此,我将查看查询计划,以确保使用了索引。你的平行度设置为什么?

只有在一个会话对给定表执行所有这些操作时,提高PGA才会有帮助,在最坏的情况下,每个会话都需要一个足够大的PGA来缓存整个表.

票数 1
EN

Database Administration用户

发布于 2011-02-15 11:09:55

有等待事件enq: TM -争用。当取消索引外键约束列(S)时,会发生此等待事件。主表上的更新将锁定整个子表。我有一个查询,它为缺失的索引生成create语句。您可以更改命名约定以使您满意。

代码语言:javascript
复制
SELECT 'CREATE INDEX '||a.owner||'.IX_'||a.table_name||'__'||
    replace(a.column_name, 'FK_', '') ||' ON '||a.owner||'.'||a.table_name||
    ' ('||a.column_name||') LOGGING TABLESPACE '||
    replace(b.tablespace_name, '_DAT', '_IDX')||' NOPARALLEL ONLINE;
/'
FROM (
   SELECT c.owner, c.table_name, cc.column_name, cc.position column_position
   FROM   all_constraints c, all_cons_columns cc
   WHERE  c.constraint_name = cc.constraint_name and c.owner=cc.owner
   AND    c.constraint_type = 'R'
   MINUS
   SELECT i.owner, i.table_name, ic.column_name, ic.column_position
   FROM   all_indexes i, all_ind_columns ic
   WHERE  i.index_name = ic.index_name and i.owner=ic.index_owner
) a
inner join all_tables b on b.owner=a.owner and b.table_name=a.table_name
where a.owner='<owner>'
ORDER BY a.owner, a.table_name, a.column_position;
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/1223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档