0

私はググってみましたが、私の印象は

クライアントからの Sql*net メッセージ

は、Oracle DBMS がクライアントが新しいコマンドを DBMS に送信するのを待っていることを示しています。したがって、このイベントで費やされる時間はクライアント側の時間であり、DB サーバーの CPU を消費してはなりません。つまり、通常、セッションがこのイベントにある場合、「ACTIVE」ではなく「INACTIVE」である必要があります。

不可解なのは、今週から (接続プールの使用を開始した後 [dbcp を使用])、時折、

クライアントからの Sql*net メッセージ

イベントと「ACTIVE」が同時に長時間表示されます。この間ずっと、DB の CPU 使用率は高くなっています。

これが何を意味するのか、誰かが光を当てることができますか? クライアントがメッセージを送信するのを DB セッションが待機している場合、「アクティブ」であり、CPU サイクルを消費するのは何ですか?

4

1 に答える 1

2

V$SESSION ビューにこのイベントが表示された場合は、STATE 列の値も確認して、セッションがアイドル状態であるか、実際に機能しているかを判断する必要があります。

これは、次の Oracle Magazine の記事に基づいています。

EVENT 列だけを見て、セッションが何を待っているかを確認することはできません。最初に STATE 列を調べて、セッションが待機中か動作中かを判断してから、EVENT 列を調べる必要があります。

于 2012-08-02T18:24:57.820 に答える