おそらくこれは正常なことですが、私の Oracle 11g データベースでは、Oracle の SQL Developer を使用しているプログラマーが、UGA と PGA メモリを合わせて 100MB 以上を定期的に消費しているのを見てきました。これが正常なのか、どうすればよいのか教えていただきたいです。私たちのデータベースは Windows 2008 の 32 ビット バージョン上にあるため、メモリの制限がますます懸念されています。次のクエリを使用してメモリ使用量を表示しています。
SELECT e.SID, e.username, e.status, b.PGA_MEMORY
FROM v$session e
LEFT JOIN
(select y.SID, y.value pga,
TO_CHAR(ROUND(y.value/1024/1024),99999999) || ' MB' PGA_MEMORY
from v$sesstat y, v$statname z
where y.STATISTIC# = z.STATISTIC# and NAME = 'session pga memory') b
ON e.sid=b.sid
WHERE (PGA)/1024/1024 > 20
ORDER BY 4 DESC;
SQLDeveloper でテーブルを開くたびにリソース使用率が上がるようですが、テーブルを閉じてもメモリはなくなりません。テーブルが開いている間にテーブルがソートされると、さらに多くのメモリを使用するように見えるため、問題はさらに悪化します。ソート中にメモリがどのように使用されるかは理解していますが、おそらくまだ開いている間でも、メモリを閉じた後にメモリを使用するのは間違っているようです。誰でもこれを確認できますか?
更新: UGA が専用サーバー モードで PGA に格納されていることを理解していないため、数値がずれていることがわかりました。これにより、数値は以前よりも低くなりますが、SQL Developer が過剰な PGA を使用しているように見えるという問題がまだ残っています。