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

2020-01-09 14:53:15 +08:00
 zhaoritian19

简单描述下现在的情况:

1、环境 A 之前通过网页调用数据库的存储过程时出现过死锁的情况,但是没有人为处理,过了一夜之后死锁情况消失,可能是 Oracle 自动检测并解决了。但是一些复杂的查询会变慢,手动执行了 Oracle 统计分析之后查询速度正常。

2、过了一夜之后,存储过程放在 plsql 中执行,大概耗时十几秒左右即可成功执行,但是在网站中(环境 A )调用执行却执行了 20 多分钟还没有结束。

3、同样代码,在另外一个环境(环境 B )调用同一个数据库的同一个存储过程会很快,大概也是十几秒的样子。

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

1021 次点击
所在节点    问与答
5 条回复
zhaoritian19
2020-01-09 14:59:02 +08:00
现在环境 A 又正常了,我已经彻底懵逼了!什么鬼啊,oracle 自动分析了?
sun1991
2020-01-09 15:08:30 +08:00
死锁的情况 Oracle 会自动处理并留下日志. 不需要人工处理.
你说的执行慢的情况, 可能是存储过程等待其他资源释时被堵塞. 解决办法是在堵塞发生时看看当前事物正在申请的资源是什么.
zhaoritian19
2020-01-09 15:22:26 +08:00
@sun1991 谢谢大佬解答,要怎么看“当前事物正在申请的资源”啊,对 oracle 不是很熟悉……
sun1991
2020-01-09 15:58:41 +08:00
既然上了 Oracle, 那就应该有 DBA 吧? 应该都懂.
基本上就是一些 view: V$LOCK, V$TRANSACTION, V$SESSION, ALL_OBJECTS 之类.
zhaoritian19
2020-01-09 16:25:09 +08:00
@sun1991 嗯呐 谢谢解答,我已经搜到相关文章啦,但是我登录的用户满意权限,让 DBA 看一下吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/636497

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX