在“来自客户端的Sql * net消息”中的会话,但是处于活动状态

时间:2012-08-02 08:50:31

标签: oracle jdbc

我用Google搜索过,我的印象是

  

来自客户端的Sql * net消息

建议Oracle DBMS正在等待客户端向DBMS发送新命令,因此在此事件中花费的任何时间都应该是客户端时间而不是消耗DB服务器CPU。换句话说,通常情况下,如果会话在此事件中,则应该是“非活动”而不是“活动”。

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

中的会话
  

来自客户端的Sql * net消息

事件并在较长时间内同时显示“ACTIVE”。在这段时间内,DB上的CPU使用率很高。

任何人都可以了解这意味着什么?如果数据库会话正在等待客户端发送消息,那么它可以是“活动”并消耗CPU周期?

1 个答案:

答案 0 :(得分:1)

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

这基于以下Oracle Magazine article:

  

你无法单独查看EVENT列以找出会话内容   正在等待。您必须先查看STATE列以确定   会话是在等待还是在工作,然后检查EVENT   列。