|
|
嘿嘿,前不久在分析性能的时候也遇到过.
一下是我的个人分析:
session allocation可以定位DB当时的session在产生这个latch的时候已经有相当大的数量,同时还无法满足应用需求在产生新的session.
一般应用服务的JDBC ODBC都会有一条简单的SQL来做health check(such as: select instance_name from v$instance).
此时通过相关工具可以查到session allocation的等待事件都是有该条health check语句产生的,一般同时会伴随CPU等待.
通过stackpack和类似工具可以查到,health check语句的执行次数远比正常时候大.
可能原因: 应用中查询数据库时SQL被嵌套在循环中并在循环中产生新的DB connection请求. |
|