我在谷歌上搜索过,我的印象是
来自客户端的Sql*网络消息
表明Oracle DBMS正在等待客户端向DBMS发送新命令,因此在该事件中花费的任何时间都应该是客户端时间,而不是消耗DB服务器CPU。换句话说,通常情况下,如果会话处于此事件中,则应为"INACTIVE"而不是"ACTIVE"。
让我们感到困惑的是,从本周开始(在我们开始使用连接池[我们使用dbcp]之后),我们偶尔会在中看到会话
来自客户端的Sql*网络消息
事件,并长时间同时显示"ACTIVE"。在这段时间里,数据库的CPU使用率很高。
有人能解释一下这意味着什么吗?如果DB会话正在等待客户端发送消息,那么它会是什么"活动"并消耗CPU周期?
如果在V$SESSION视图中看到此事件,则还需要检查STATE列的值,以确定会话是否空闲或实际上正在工作。
这是基于以下Oracle杂志文章:
您无法单独查看EVENT列来了解会话内容正在等待。必须先查看STATE列才能确定会话是否正在等待或正在工作,然后检查EVENT柱