ITPUB??ì3
2010数据库技术大会
ITPUB论坛 » Oracle数据库管理 » statspack报告中Rollback per transaction过高,怎么办?


您有 1 条公共消息
  • 来自: 公共消息 标题: 3-5月ITPUB数据库 ... 内容: ITPUB与3月和5月分别安排了Oracle 11g DBA和Oracle性能优化培训,以及 ...

    标题: statspack报告中Rollback per transaction过高,怎么办?
    离线 olivenan
    资深会员



    精华贴数 0
    个人空间 0
    技术积分 1790 (1144)
    社区积分 18 (9781)
    注册日期 2004-2-22
    论坛徽章:19
    ITPUB元老会员2007贡献徽章授权会员生肖徽章2007版:鸡生肖徽章2007版:猴生肖徽章2007版:鼠
    生肖徽章:猪生肖徽章:狗生肖徽章:鸡生肖徽章:猴生肖徽章:羊生肖徽章:马

    发表于 2006-8-3 16:35 
    statspack报告中Rollback per transaction过高,怎么办?

    http://www.itpub.net/304699.html
    在我的statspack中Rollback per transaction很大,但是不应该有这么多的回滚呀??我如何才能确定其问题所在
    前台是jsp




    olivenan 上传了这个附件:
    2006-8-3 16:35
      下载次数: 27
    spreport.txt (79.34 KB)
     
    __________________
    向大家学习,共同进步QQ:37939051MSN:‘pub’的‘ID’@hotmail.com博客:http://olivenan.cublog.cn
    只看该作者    顶部
    离线 xzh2000
    仙人抚我须 结发授长生



    精华贴数 13
    个人空间 0
    技术积分 47275 (19)
    社区积分 5403 (364)
    注册日期 2002-7-17
    论坛徽章:36
    现任管理团队成员ITPUB元老九尾狐狸玉石琵琶紫蜘蛛蓝色妖姬
    八级虎吧徽章红孩儿铁扇公主玉兔嫦娥授权会员

    发表于 2006-8-3 16:38 
    有没有用连接池之类的东西?


    __________________
    过目即忘  插柳成荫
    只看该作者    顶部
    离线 olivenan
    资深会员



    精华贴数 0
    个人空间 0
    技术积分 1790 (1144)
    社区积分 18 (9781)
    注册日期 2004-2-22
    论坛徽章:19
    ITPUB元老会员2007贡献徽章授权会员生肖徽章2007版:鸡生肖徽章2007版:猴生肖徽章2007版:鼠
    生肖徽章:猪生肖徽章:狗生肖徽章:鸡生肖徽章:猴生肖徽章:羊生肖徽章:马

    发表于 2006-8-3 16:39 
    使用了连接池,这跟连接池有什么关系吗??会不会对系统性能产生影响呢??


    __________________
    向大家学习,共同进步QQ:37939051MSN:‘pub’的‘ID’@hotmail.com博客:http://olivenan.cublog.cn
    只看该作者    顶部
    离线 xzh2000
    仙人抚我须 结发授长生



    精华贴数 13
    个人空间 0
    技术积分 47275 (19)
    社区积分 5403 (364)
    注册日期 2002-7-17
    论坛徽章:36
    现任管理团队成员ITPUB元老九尾狐狸玉石琵琶紫蜘蛛蓝色妖姬
    八级虎吧徽章红孩儿铁扇公主玉兔嫦娥授权会员

    发表于 2006-8-3 17:08 


    QUOTE:
    最初由 olivenan 发布
    使用了连接池,这跟连接池有什么关系吗??会不会对系统性能产生影响呢??

    没有影响的。




    __________________
    过目即忘  插柳成荫
    只看该作者    顶部
    离线 olivenan
    资深会员



    精华贴数 0
    个人空间 0
    技术积分 1790 (1144)
    社区积分 18 (9781)
    注册日期 2004-2-22
    论坛徽章:19
    ITPUB元老会员2007贡献徽章授权会员生肖徽章2007版:鸡生肖徽章2007版:猴生肖徽章2007版:鼠
    生肖徽章:猪生肖徽章:狗生肖徽章:鸡生肖徽章:猴生肖徽章:羊生肖徽章:马

    发表于 2006-8-3 17:20 
    select name,value from v$sysstat where name like '%rollback%';
    user rollbacks        3247723
    transaction tables consistent read rollbacks        0
    rollbacks only - consistent read gets        1361567
    cleanouts and rollbacks - consistent read gets        16910
    rollback changes - undo records applied        151391
    transaction rollbacks        3527

    select name,value from v$sysstat where name like '%commit%'
    user commits        397011
    commit cleanout failures: write disabled        0
    commit cleanout failures: block lost        4005
    commit cleanout failures: cannot pin        16
    commit cleanout failures: hot backup in progress        0
    commit cleanout failures: buffer being written        18110
    commit cleanout failures: callback failure         15951
    commit cleanouts        50498241
    commit cleanouts successfully completed        50460159
    commit txn count during cleanout        3112310
    OTC commit optimization attempts        0
    OTC commit optimization hits        0
    OTC commit optimization failure - setup        0


    __________________
    向大家学习,共同进步QQ:37939051MSN:‘pub’的‘ID’@hotmail.com博客:http://olivenan.cublog.cn
    只看该作者    顶部
    离线 rollingpig
    版主


    精华贴数 6
    个人空间 103
    技术积分 30029 (35)
    社区积分 2425 (670)
    注册日期 2001-10-18
    论坛徽章:42
    现任管理团队成员2006年度最佳技术回答ITPUB北京九华山庄2008年会纪念徽章2010新春纪念徽章生肖徽章2007版:鼠IT宝贝
    生肖徽章2007版:猪     

    发表于 2006-8-3 17:23 
    你可以考虑找找看谁在做大量的rollback.

    SELECT s.sid,program,machine,st.Value rollback_count
    FROM v$session s ,v$sesstat st ,v$statname n
    WHERE n.statistic# = st.statistic#
    AND n.NAME = 'user rollbacks'
    AND s.sid = st.sid
    AND st.Value > 0
    ORDER BY st.Value desc


    __________________

    ITPUB虎年超级宝贝投票,请投我的小孩一票,谢谢

    欢迎访问乐恒的空间
    9/12隆重推出周岁照

    提问的智慧 for Oracle[展开版]
    提问的智慧Oracle版
    0。尝试在google,论坛,metalink,online document里搜索。
    1。写清楚你的执行log,报错信息,写清楚DB version , OS
    2。Instance 方面的问题,请贴出alertlog
    3。network的问题,贴出server的listener.ora , sqlnet.ora 并运行lsnrctl service, 贴出client的tnsnames.ora , sqlnet.ora ,并运行tnsping
    4。DB总体性能问题,请于peak time做statspack,并上传statspack report。同时附上CPU/MEM配置,以及CPU IDLE/free menory的情况
    5。SQL性能问题,列出当前SQL,以及PLAN。同时应提供表结构,index情况,Table的record数。CBO/RBO,table是否analyze等信息。
    6。确保你的问题是Oracle相关。
    欢迎访问乐恒的空间
    只看该作者    顶部
    离线 xzh2000
    仙人抚我须 结发授长生



    精华贴数 13
    个人空间 0
    技术积分 47275 (19)
    社区积分 5403 (364)
    注册日期 2002-7-17
    论坛徽章:36
    现任管理团队成员ITPUB元老九尾狐狸玉石琵琶紫蜘蛛蓝色妖姬
    八级虎吧徽章红孩儿铁扇公主玉兔嫦娥授权会员

    发表于 2006-8-3 17:25 
    select name,value from v$sysstat where name in ('user rollbacks','transaction rollbacks');

    NAME VALUE
    ---------------------------------------------------------------- ----------
    user rollbacks 8584
    transaction rollbacks 81

    这个地方要注意,user rollbacks与transaction rollbacks的区别,如果没有事务,执行了rollback,对系统是没有影响的,这个百分比应该就是用user rollbacks来计算的,所以没有关系的。。。

    Rollback per transaction %:' dscr, round(100*:urol/:tran,2) pctval
    那:urol与:tran是如何计算出来的呢?
    begin
    STATSPACK.STAT_CHANGES
    ( :bid, :eid
    , :dbid, :inst_num
    , ara -- End of IN arguments
    , :lhtr, :bfwt
    , :tran, :chng
    , :ucal, :urol


    begin /* main procedure body of STAT_CHANGES */

    lhtr := LIBRARYCACHE_HITRATIO;
    bfwt := BUFFER_WAITS;
    lhr := LATCH_HITRATIO;
    chng := SYSDIF('db block changes');
    ucal := SYSDIF('user calls');
    urol := SYSDIF('user rollbacks');
    ucom := SYSDIF('user commits');
    tran := ucom + urol;

    看到这里,相信大家也应该明白为什么没有关系吧?


    __________________
    过目即忘  插柳成荫
    只看该作者    顶部
    离线 olivenan
    资深会员



    精华贴数 0
    个人空间 0
    技术积分 1790 (1144)
    社区积分 18 (9781)
    注册日期 2004-2-22
    论坛徽章:19
    ITPUB元老会员2007贡献徽章授权会员生肖徽章2007版:鸡生肖徽章2007版:猴生肖徽章2007版:鼠
    生肖徽章:猪生肖徽章:狗生肖徽章:鸡生肖徽章:猴生肖徽章:羊生肖徽章:马

    发表于 2006-8-3 17:36 
    我使用该语句查询
    SELECT  st.Value rollback_count,substr(trim(c.sql_text),1,40)||'...'
    FROM v$session s ,v$sesstat st ,v$statname n, v$process b, v$sqlarea c
    WHERE n.statistic# = st.statistic#
    AND n.NAME = 'user rollbacks'
    AND s.sid = st.sid
    AND st.Value > 0
    and b.addr = s.paddr
    AND s.sql_address = c.address(+)
    ORDER BY st.Value desc

    得出来的结果都是select语句,并且这些select语句不是访问的远程数据库??这是啥原因??
    由于sql语句过长会将页面撑开,故将其截短
    5684        select id,username,company,introduction,...
    5178        select ID,NAME from( select  ID,TITLE AS...
    5170        select count(id) as num from club_contac...
    4881        select id,enterpriseId,jobType,jobtitle,...
    4881        select id,username,company,introduction,...
    2574        select count(*) from club_recievemessage...
    1880        select a.tagid,b.tagname from club_tags_...
    1872        select b.contactid as id,substr(a.email,...
    1866        select ID,NAME from( select  ID,TITLE AS...
    1864        select a.id,a.authorId,a.title,a.url,a.d...
    1854        select ID,NAME from( select  ID,TITLE AS...
    18        SELECT id, Name, introduction, Url, cate...
    14        ...
    12        ...


    __________________
    向大家学习,共同进步QQ:37939051MSN:‘pub’的‘ID’@hotmail.com博客:http://olivenan.cublog.cn
    只看该作者    顶部
    在线/呼叫 zhangfengh
    老狐狸


    精华贴数 3
    个人空间 0
    技术积分 19870 (62)
    社区积分 9016 (233)
    注册日期 2002-10-12
    论坛徽章:257
    现任管理团队成员参与项目管理沙龙活动纪念地主长老地主之星地主之王IT宝贝
    生肖徽章:鸡生肖徽章:鸡生肖徽章:鸡生肖徽章:鸡生肖徽章:鸡生肖徽章:鸡

    发表于 2006-8-3 17:43 
    关注,我现在监控的数据库
    Rollback per transaction %:   93.97

    正不知道怎么办呢


    __________________
    =======================================
    狐狸在这个世界上是凭借聪明而得到生存的,并且在这个世界上占有一席之地,学习狐狸的聪明,少走弯路。
    =======================================
    吸收别人的经验,使之成为自己的经验!
    =======================================
    ITPUB 2008 ""
    只看该作者    顶部
     
        

    相关内容


    CopyRight 1999-2006 itpub.net All Right Reserved.
    北京皓辰网域网络信息技术有限公司. 版权所有
    E-mail:Webmaster@itpub.net
    网站律师 隐私政策 知识产权声明
    京ICP证:060528号 联系我们