V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zhaoritian19
V2EX  ›  问与答

请教大佬们一些 Oracle 相关问题

  •  
  •   zhaoritian19 · 2020-01-09 14:53:15 +08:00 · 1017 次点击
    这是一个创建于 1567 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简单描述下现在的情况:

    1、环境 A 之前通过网页调用数据库的存储过程时出现过死锁的情况,但是没有人为处理,过了一夜之后死锁情况消失,可能是 Oracle 自动检测并解决了。但是一些复杂的查询会变慢,手动执行了 Oracle 统计分析之后查询速度正常。
    
    2、过了一夜之后,存储过程放在 plsql 中执行,大概耗时十几秒左右即可成功执行,但是在网站中(环境 A )调用执行却执行了 20 多分钟还没有结束。
    
    3、同样代码,在另外一个环境(环境 B )调用同一个数据库的同一个存储过程会很快,大概也是十几秒的样子。
    

    请问这是什么原因呢?现在应该怎么操作才能解决环境 A 中调用存储过程慢的问题呢?

    5 条回复    2020-01-09 16:25:09 +08:00
    zhaoritian19
        1
    zhaoritian19  
    OP
       2020-01-09 14:59:02 +08:00
    现在环境 A 又正常了,我已经彻底懵逼了!什么鬼啊,oracle 自动分析了?
    sun1991
        2
    sun1991  
       2020-01-09 15:08:30 +08:00   ❤️ 1
    死锁的情况 Oracle 会自动处理并留下日志. 不需要人工处理.
    你说的执行慢的情况, 可能是存储过程等待其他资源释时被堵塞. 解决办法是在堵塞发生时看看当前事物正在申请的资源是什么.
    zhaoritian19
        3
    zhaoritian19  
    OP
       2020-01-09 15:22:26 +08:00
    @sun1991 谢谢大佬解答,要怎么看“当前事物正在申请的资源”啊,对 oracle 不是很熟悉……
    sun1991
        4
    sun1991  
       2020-01-09 15:58:41 +08:00
    既然上了 Oracle, 那就应该有 DBA 吧? 应该都懂.
    基本上就是一些 view: V$LOCK, V$TRANSACTION, V$SESSION, ALL_OBJECTS 之类.
    zhaoritian19
        5
    zhaoritian19  
    OP
       2020-01-09 16:25:09 +08:00
    @sun1991 嗯呐 谢谢解答,我已经搜到相关文章啦,但是我登录的用户满意权限,让 DBA 看一下吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3307 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 14:01 · PVG 22:01 · LAX 07:01 · JFK 10:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.