Re: How can I tell how much memory a database is using?

  • From: "Mladen Gogala" <dmarc-noreply@xxxxxxxxxxxxx> (Redacted sender "mgogala@xxxxxxxxx" for DMARC)
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Thu, 15 Jan 2015 19:48:01 -0500

On 01/15/2015 03:25 PM, David Fitzjarrell (Redacted sender oratune@xxxxxxxxx for DMARC) wrote:

It depends on the O/S. If it's a Linux/UNIX system then you can get the shared memory footprint using ipcs -m as the 'oracle' user. If you're using NUMA you'll see one entry with a non-zero address and one or more additional entries with a 0 address value. As an example here is the output from that command from one of our Linux servers:

$ ipcs -m

V$SGAINFO has all the necessary info neatly summarized:
SQL> select * from v$sgainfo;

NAME                      BYTES RES
-------------------------------- ---------- ---
Fixed SGA Size                2252824 No
Redo Buffers                8892416 No
Buffer Cache Size          838860800 Yes
Shared Pool Size          301989888 Yes
Large Pool Size            83886080 Yes
Java Pool Size               16777216 Yes
Streams Pool Size              0 Yes
Shared IO Pool Size              0 Yes
Granule Size               16777216 No
Maximum SGA Size         1252663296 No
Startup overhead in Shared Pool    87253648 No

NAME                      BYTES RES
-------------------------------- ---------- ---
Free SGA Memory Available          0

12 rows selected.

SQL> select round(sum(bytes)/1048576,2) MB from v$sgainfo;

    MB
----------
   2488.47

SQL>


That would give you the size of SGA. The size of the PGA is unimportant because hashing and sorting are soooo XX century.

--
Mladen Gogala
Oracle DBA
http://mgogala.freehostia.com

Other related posts: