楼主: freshgirls

做乙方不容易啊,客户发飙拉

[复制链接]
论坛徽章:
109
开发板块每日发贴之星
日期:2006-06-06 01:02:23数据库板块每日发贴之星
日期:2006-12-30 01:03:28每日论坛发贴之星
日期:2008-07-12 01:01:37行业板块每日发贴之星
日期:2008-07-23 01:02:20ITPUB元老
日期:2010-11-12 15:19:292014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02
21#
发表于 2008-3-18 18:27 | 只看该作者
同情啊,都时乙方

使用道具 举报

回复
论坛徽章:
138
19周年集字徽章-19
日期:2020-06-08 08:30:56马上加薪
日期: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马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02路虎
日期:2013-11-22 12:26:18问答徽章
日期:2014-05-08 12:15:31
22#
发表于 2008-3-18 18:30 | 只看该作者
只能通过v$transaction+v$session查到哪个session导致的undo暴涨,语句基本上是查不到了,能查到的概率很小

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
25
生肖徽章2007版:龙
日期:2008-05-06 11:07:48咸鸭蛋
日期:2011-10-19 10:09:12ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-01-04 11:49:542013年新春福章
日期:2013-02-25 14:51:24
23#
发表于 2008-3-18 20:36 | 只看该作者
先查看是哪个session吧,不过sql很难查出来的。业务系统里面哪个地有大量的未提交问问设计人员

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
25
生肖徽章2007版:龙
日期:2008-05-06 11:07:48咸鸭蛋
日期:2011-10-19 10:09:12ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-01-04 11:49:542013年新春福章
日期:2013-02-25 14:51:24
24#
发表于 2008-3-18 20:37 | 只看该作者
先查看是哪个session吧,不过sql很难查出来的。业务系统里面哪个地有大量的未提交问问设计人员

使用道具 举报

回复
论坛徽章:
27
授权会员
日期:2005-10-30 17:05:33管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36优秀写手
日期:2013-12-18 09:29:13马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
25#
发表于 2008-3-20 08:58 | 只看该作者
给你一些思路吧:

首先如果你的版本是10g的话,先关闭undo retention undo tune参数,你可以查看undo_retention是不是随着空间的增长而增长

如何找出SQL? UNDO增长是因为DML语句,那么DML语句伴随的不仅仅是UNDO,同时也有REDO。找到生成大量REDO的sql自然也就找到生成大量UNDO的sql

v$sesstat中有一项是redo size,取时间点A, create table a as select * from v$sesstat;

然后join v$sesstat, a, v$session,取出这段时间内生成redo最多的session的sid,hash_value,prev_hash_value

使用道具 举报

回复
论坛徽章:
25
授权会员
日期:2007-08-20 23:44:422011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-02-18 11:42:49管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-01-04 11:49:54咸鸭蛋
日期:2012-02-06 17:15:202012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36
26#
发表于 2008-3-20 09:45 | 只看该作者
原帖由 freshgirls 于 2008-3-18 12:18 发表


  是LM的兄弟,和你们那边很熟悉啊,呵呵,怎么找出是哪个SQL造成这个问题?

1、查看v$transaction,如果运气好,事务还在运行。再看undo比较多的事务。
2、检查v$sesstat中的redo size。检查两个时间点之间的差值比较大的。看看有没有这样的SESSION。
3、检查undo_retention设置。查看UNDO TABLESPACE是不是设置了retention guarantee
4、建议关闭UNDO TABLESPACE中数据文件的自动扩展。
5、如果在系统中查不到当前产生大量UNDO的会话,只有用logminr挖一挖看看。


btw,不知道你是哪位?站内发个消息如何?

使用道具 举报

回复
论坛徽章:
8
会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:猴
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:532008新春纪念徽章
日期:2008-02-13 12:43:032009新春纪念徽章
日期:2009-01-04 14:52:28ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
27#
发表于 2008-3-20 10:06 | 只看该作者
原帖由 eagle_fan 于 2008-3-20 08:58 发表
给你一些思路吧:

首先如果你的版本是10g的话,先关闭undo retention undo tune参数,你可以查看undo_retention是不是随着空间的增长而增长

如何找出SQL? UNDO增长是因为DML语句,那么DML语句伴随的不仅仅是UNDO,同时也有REDO。找到生成大量REDO的sql自然也就找到生成大量UNDO的sql

v$sesstat中有一项是redo size,取时间点A, create table a as select * from v$sesstat;

然后join v$sesstat, a, v$session,取出这段时间内生成redo最多的session的sid,hash_value,prev_hash_value



这个方法不错,我上次也是这样找到产生大量redo的sql语句。

不过,你指的取时间点A是什么意思。

使用道具 举报

回复
论坛徽章:
27
授权会员
日期:2005-10-30 17:05:33管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36优秀写手
日期:2013-12-18 09:29:13马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
28#
发表于 2008-3-20 10:38 | 只看该作者
原帖由 seamanczg1984 于 2008-3-20 10:06 发表



这个方法不错,我上次也是这样找到产生大量redo的sql语句。

不过,你指的取时间点A是什么意思。


任意时间点,只是做一个 snapshot

使用道具 举报

回复
论坛徽章:
129
蓝锆石
日期:2008-08-23 16:25:58萤石
日期:2008-02-26 15:38:51祖母绿
日期:2008-08-18 16:12:54海蓝宝石
日期:2008-02-23 15:06:23紫水晶
日期:2008-08-22 14:58:26红宝石
日期:2008-07-26 15:02:37九尾狐狸
日期:2008-09-16 09:24:50红孩儿
日期:2008-10-26 12:20:09紫蜘蛛
日期:2008-11-19 08:33:41玉兔
日期:2009-02-02 09:09:53
29#
发表于 2008-3-20 10:56 | 只看该作者
原帖由 eagle_fan 于 2008-3-20 08:58 发表
给你一些思路吧:

首先如果你的版本是10g的话,先关闭undo retention undo tune参数,你可以查看undo_retention是不是随着空间的增长而增长

如何找出SQL? UNDO增长是因为DML语句,那么DML语句伴随的不仅仅是UNDO,同时也有REDO。找到生成大量REDO的sql自然也就找到生成大量UNDO的sql

v$sesstat中有一项是redo size,取时间点A, create table a as select * from v$sesstat;

然后join v$sesstat, a, v$session,取出这段时间内生成redo最多的session的sid,hash_value,prev_hash_value


做了下试验,好使。学习了

使用道具 举报

回复
论坛徽章:
129
蓝锆石
日期:2008-08-23 16:25:58萤石
日期:2008-02-26 15:38:51祖母绿
日期:2008-08-18 16:12:54海蓝宝石
日期:2008-02-23 15:06:23紫水晶
日期:2008-08-22 14:58:26红宝石
日期:2008-07-26 15:02:37九尾狐狸
日期:2008-09-16 09:24:50红孩儿
日期:2008-10-26 12:20:09紫蜘蛛
日期:2008-11-19 08:33:41玉兔
日期:2009-02-02 09:09:53
30#
发表于 2008-3-20 11:08 | 只看该作者
不过有个还有个问题想请教下,这个v$sesstat中,关于redo size的value是以什么为单位的?

使用道具 举报

回复

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

本版积分规则 发表回复

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