会话在 "Sql*net message from client" 中,但处于活动状态



我在谷歌上搜索过,我的印象是

来自客户端的Sql*网络消息

表明Oracle DBMS正在等待客户端向DBMS发送新命令,因此在该事件中花费的任何时间都应该是客户端时间,而不是消耗DB服务器CPU。换句话说,通常情况下,如果会话处于此事件中,则应为"INACTIVE"而不是"ACTIVE"。

让我们感到困惑的是,从本周开始(在我们开始使用连接池[我们使用dbcp]之后),我们偶尔会在中看到会话

来自客户端的Sql*网络消息

事件,并长时间同时显示"ACTIVE"。在这段时间里,数据库的CPU使用率很高。

有人能解释一下这意味着什么吗?如果DB会话正在等待客户端发送消息,那么它会是什么"活动"并消耗CPU周期?

如果在V$SESSION视图中看到此事件,则还需要检查STATE列的值,以确定会话是否空闲或实际上正在工作。

这是基于以下Oracle杂志文章:

您无法单独查看EVENT列来了解会话内容正在等待。必须先查看STATE列才能确定会话是否正在等待或正在工作,然后检查EVENT柱

相关内容

最新更新