楼主: wei-xh

[精华] AWR报告,很多索引的行级锁冲突。

[复制链接]
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
21#
发表于 2010-6-22 10:35 | 只看该作者
WITH ash_query AS
     (SELECT   SUBSTR (event, 6, 2) lock_type, program, h.module, h.action,
               object_name, SUM (time_waited) / 1000 time_ms, COUNT (*) waits,
               username, sql_text,
               RANK () OVER (ORDER BY SUM (time_waited) DESC) AS time_rank,
               ROUND (SUM (time_waited) * 100 / SUM (SUM (time_waited)) OVER (),
                      2
                     ) pct_of_time
          FROM v$active_session_history h JOIN dba_users u USING (user_id)
               LEFT OUTER JOIN dba_objects o ON (o.object_id = h.current_obj#
                                                )
               LEFT OUTER JOIN v$sql s USING (sql_id)
         WHERE event LIKE 'enq: %'
      GROUP BY SUBSTR (event, 6, 2),
               program,
               h.module,
               h.action,
               object_name,
               sql_text,
               username)
SELECT   lock_type, module, username, object_name, time_ms, pct_of_time,
         sql_text
    FROM ash_query
   WHERE time_rank < 11
ORDER BY time_rank;

看看这个的执行结果,仅仅适用于10g以上的系统。

[ 本帖最后由 lfree 于 2010-6-22 10:36 编辑 ]

使用道具 举报

回复
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
22#
发表于 2010-6-22 10:44 | 只看该作者
WITH sql_app_waits AS
     (SELECT sql_id, SUBSTR (sql_text, 1, 80) sql_text,
             application_wait_time / 1000 app_time_ms, elapsed_time,
             ROUND (application_wait_time * 100 / elapsed_time,
                    2
                   ) app_time_pct,
             ROUND (  application_wait_time
                    * 100
                    / SUM (application_wait_time) OVER (),
                    2
                   ) pct_of_app_time,
             RANK () OVER (ORDER BY application_wait_time DESC) ranking
        FROM v$sql
       WHERE elapsed_time > 0 AND application_wait_time > 0)
SELECT   sql_text, app_time_ms, app_time_pct, pct_of_app_time
    FROM sql_app_waits
   WHERE ranking <= 10
ORDER BY ranking;

在看看是那些sql,也是适用10g。

使用道具 举报

回复
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
23#
发表于 2010-6-22 10:52 | 只看该作者
lz 应该是中心,而不是底下的分支机构吧。

使用道具 举报

回复
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
24#
发表于 2010-6-22 10:54 | 只看该作者
我的估计就是
idx_ab07_aae072 的索引键值 aae072要修改的原因。

建立结合以上sql语句看看。

使用道具 举报

回复
论坛徽章:
4
祖国60周年纪念徽章
日期:2009-10-09 08:28:00参与WIN7挑战赛纪念
日期:2009-11-06 16:05:25生肖徽章2007版:鼠
日期:2009-11-17 16:35:582013年新春福章
日期:2013-02-25 14:51:24
25#
发表于 2010-6-22 11:09 | 只看该作者
原帖由 lfree 于 2010-6-22 10:54 发表
我的估计就是
idx_ab07_aae072 的索引键值 aae072要修改的原因。

建立结合以上sql语句看看。


呵呵,我也来说二句。
感觉你这样回复他,他也不知道具体的原因和如何处理的。一般来说这类错误太多数情况都是sql和索引设计失误及表的数据量太大及多个session并发访问等因素引起,bug也有可能会引起这个错误。查到使用此索引的相关sql 算出花费的成本,然后再根据需要看能不能调下索引的架构,另外可以根据业务需要看看能不能定时收集这个索引的统计信息,来避开高并发的压力的时间。

使用道具 举报

回复
论坛徽章:
21
奔驰
日期:2013-08-06 15:23:05日产
日期:2013-08-07 22:56:38蜘蛛蛋
日期:2012-12-29 19:15:08奥迪
日期:2013-08-07 17:02:24数据库板块每日发贴之星
日期:2010-06-28 01:01:03奥迪
日期:2013-08-13 10:10:28本田
日期:2013-11-20 15:17:02优秀写手
日期:2013-12-18 09:29:08玉兔
日期:2014-03-04 16:47:17铁扇公主
日期:2012-02-21 15:02:40
26#
 楼主| 发表于 2010-6-22 12:00 | 只看该作者
原帖由 lfree 于 2010-6-22 10:52 发表
lz 应该是中心,而不是底下的分支机构吧。


我是沈阳总部的,来这边短期实施,主要是部署一下应用WEBLOGIC,监控一下上线期间的数据库。

使用道具 举报

回复
论坛徽章:
21
奔驰
日期:2013-08-06 15:23:05日产
日期:2013-08-07 22:56:38蜘蛛蛋
日期:2012-12-29 19:15:08奥迪
日期:2013-08-07 17:02:24数据库板块每日发贴之星
日期:2010-06-28 01:01:03奥迪
日期:2013-08-13 10:10:28本田
日期:2013-11-20 15:17:02优秀写手
日期:2013-12-18 09:29:08玉兔
日期:2014-03-04 16:47:17铁扇公主
日期:2012-02-21 15:02:40
27#
 楼主| 发表于 2010-6-22 12:09 | 只看该作者
原帖由 lfree 于 2010-6-22 10:54 发表
我的估计就是
idx_ab07_aae072 的索引键值 aae072要修改的原因。

建立结合以上sql语句看看。


呵呵,如楼主所说,存在UPDATE的情况,我问了业务人员,这个操作需要经常做。

使用道具 举报

回复
论坛徽章:
122
现任管理团队成员
日期:2011-05-07 01:45:08
28#
发表于 2010-6-22 14:27 | 只看该作者
原帖由 lfree 于 2010-6-22 10:54 发表
我的估计就是
idx_ab07_aae072 的索引键值 aae072要修改的原因。

建立结合以上sql语句看看。



为什么这么说? 并发update同一个索引字段,可以引起row lock,单是v$segment_statstistic里面,没有看到再index上出现row lock wait的记录呀~

使用道具 举报

回复
论坛徽章:
8
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442009日食纪念
日期:2009-07-22 09:30:002010新春纪念徽章
日期:2010-01-04 08:33:082010新春纪念徽章
日期:2010-03-01 11:19:072011新春纪念徽章
日期:2011-01-04 10:37:10ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24
29#
发表于 2010-6-22 14:43 | 只看该作者
东软?

哈哈

想我7年前,也在用powerbuilder 弄SI

工资1200

使用道具 举报

回复
论坛徽章:
122
现任管理团队成员
日期:2011-05-07 01:45:08
30#
发表于 2010-6-22 14:58 | 只看该作者
并发更新非唯一索引字段 row lock waits发生在table上,不在索引上~ 可以试验证明~

使用道具 举报

回复

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

本版积分规则 发表回复

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