查看: 4303|回复: 22

一条sql 优化中的问题

[复制链接]
论坛徽章:
0
发表于 2010-1-5 15:23 | 显示全部楼层 |阅读模式
一条语句, 从AWR中看到的,收集间隔为1小时.  在sql ordered by gets 中排第一位
Buffer Gets    Executions  Gets per Exec   %Total   CPU Time (s)   Elapsed Time (s)  SQL Id
33,783,096   620              54,488.86        19.90     148.72            148.90                  ar7c3d0zt
我是看到Buffer Get 比较高, 就分析了一下, 不过sqlplus 好像看不出什么来?
------------------------------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                                        | Name                                                     | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                         |                                                               |     1 |    48 |     4   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE                           |                                                               |     1 |    48 |               |                |
|   2 |   NESTED LOOPS                              |                                                               |     1 |    48 |     4   (0)| 00:00:01 |
|   3 |    NESTED LOOPS                             |                                                               |     1 |    24 |     3   (0)| 00:00:01 |
|*  4 |     TABLE ACCESS BY INDEX ROWID| HR_WORKERORDER_STATUS                  |     1 |    19 |     2   (0)| 00:00:01 |
|*  5 |      INDEX RANGE SCAN                   | IDX_HR_WORKERORDER_STATUS_TYPE |     1 |         |     2   (0)| 00:00:01 |
|*  6 |     INDEX UNIQUE SCAN                  | SYS_C0016748                                       |     1 |     5 |     1   (0)| 00:00:01 |
|*  7 |    TABLE ACCESS BY INDEX ROWID | HR_WORKER_INFO                                 |     1 |    24|     1   (0)| 00:00:01 |
|*  8 |     INDEX UNIQUE SCAN                  | SYS_C0016742                                       |     1 |        |     1   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------------------------------------------------------------
Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          3  consistent gets         
          0  physical reads
          0  redo size
        509  bytes sent via SQL*Net to client
        492  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

从上面的trace 看感觉不到问题,我的问题是为什么awr 中却显示很高的buffer gets 呢?
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:20:00
发表于 2010-1-5 15:33 | 显示全部楼层
关注下~就3个逻辑读

使用道具 举报

回复
论坛徽章:
136
ITPUB年度最佳技术回答奖
日期:2010-06-12 13:17:14现代
日期:2013-10-02 14:53:59路虎
日期:2013-11-22 12:26:182014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
发表于 2010-1-5 15:35 | 显示全部楼层
把awr里的执行计划抓出来看看

使用道具 举报

回复
论坛徽章:
1
2011新春纪念徽章
日期:2011-02-18 11:43:34
发表于 2010-1-5 15:36 | 显示全部楼层
猜想是不是读取次数过多,造成整个gets过大呢?

使用道具 举报

回复
论坛徽章:
0
发表于 2010-1-5 15:49 | 显示全部楼层
表中的数据量是否有变化?统计信息是否更新过?

使用道具 举报

回复
论坛徽章:
136
ITPUB年度最佳技术回答奖
日期:2010-06-12 13:17:14现代
日期:2013-10-02 14:53:59路虎
日期:2013-11-22 12:26:182014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
发表于 2010-1-5 15:54 | 显示全部楼层
select * from table(dbms_xplan.display_awr('ar7c3d0zt '));发上来看看

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2010-1-5 16:17 | 显示全部楼层
执行次数平均也就在 200 多次,应该不算高。

刚看了, 表中的数据量是在变化, 不过不大,统计信息有5天左右没有更新, 白天不好做更新

另如何直观的看awr 里的执行计划?

使用道具 举报

回复
论坛徽章:
14
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:52沸羊羊
日期:2015-03-04 14:43:43马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11福特
日期:2013-10-14 21:18:25凯迪拉克
日期:2013-09-23 23:01:572013年新春福章
日期:2013-02-25 14:51:242012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412011新春纪念徽章
日期:2011-02-18 11:43:33
发表于 2010-1-5 16:18 | 显示全部楼层
原帖由 棉花糖ONE 于 2010-1-5 15:54 发表
select * from table(dbms_xplan.display_awr('ar7c3d0zt '));发上来看看



這個是正解

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2010-1-5 16:21 | 显示全部楼层

回复 #6 棉花糖ONE 的帖子

----------------------------------------------------------------------------------------------------------------------
| Id  | Operation                           | Name                           | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                    |                                |       |       |  3870 (100)|          |
|   1 |  SORT AGGREGATE                     |                                |     1 |    48 |            |          |
|   2 |   NESTED LOOPS                      |                                |  1247 | 59856 |  3870   (1)| 00:00:47 |
|   3 |    NESTED LOOPS                     |                                |  1247 | 29928 |  1374   (1)| 00:00:17 |
|   4 |     TABLE ACCESS BY INDEX ROWID     | HR_WORKERORDER_STATUS          |  1247 | 23693 |  1374   (1)| 00:00:17 |
|   5 |      BITMAP CONVERSION TO ROWIDS    |                                |       |       |            |          |
|   6 |       BITMAP AND                    |                                |       |       |            |          |
|   7 |        BITMAP CONVERSION FROM ROWIDS|                                |       |       |            |          |
|   8 |         INDEX RANGE SCAN            | IDX_HR_WORKERORDER_STATUS_EMBR |       |       |    62   (2)| 00:00:01 |
|   9 |        BITMAP CONVERSION FROM ROWIDS|                                |       |       |            |          |
|  10 |         INDEX RANGE SCAN            | IDX_HR_WORKERORDER_STATUS_TYPE |       |       |   527   (2)| 00:00:07 |
|  11 |     INDEX UNIQUE SCAN               | SYS_C0016748                   |     1 |     5 |     0   (0)|          |
|  12 |    TABLE ACCESS BY INDEX ROWID      | HR_WORKER_INFO                 |     1 |    24 |     2   (0)| 00:00:01 |
|  13 |     INDEX UNIQUE SCAN               | SYS_C0016742                   |     1 |       |     1   (0)| 00:00:01 |
----------------------------------------------------------------------------------------------------------------------

考,很明显, 这样的话, 是啥原因, 更新表统计信息吗?

使用道具 举报

回复
论坛徽章:
136
ITPUB年度最佳技术回答奖
日期:2010-06-12 13:17:14现代
日期:2013-10-02 14:53:59路虎
日期:2013-11-22 12:26:182014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
发表于 2010-1-5 16:22 | 显示全部楼层

回复 #9 MatriX-staff 的帖子

你前面的那个语句和你awr里看到的不是一样的吧,是不是输入的参数的值不一样

使用道具 举报

回复

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

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


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

大会官网>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表