0

我用谷歌搜索了一下,我的印象是

来自客户端的 Sql*net 消息

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

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

来自客户端的 Sql*net 消息

事件并在较长时间内同时显示“活动”。在这段时间内,数据库上的 CPU 使用率很高。

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

4

1 回答 1

2

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

这基于以下 Oracle Magazine文章:

您不能单独查看 EVENT 列来找出会话正在等待什么。您必须首先查看 STATE 列以确定会话是在等待还是在工作,然后检查 EVENT 列。

于 2012-08-02T18:24:57.820 回答