There is a limit to the amount of information that SQL can provide. SQL can at most provide the information that is externalized through X$ views. But there are many components of the SGA that have not been externalized or made available through X$ views. For example, you cannot write a query to display the content of a data buffer or the log buffer. Currently, you can only see the information by dumping the appropriate structure, such as the buffer cache or state objects, at the appropriate level. You must then spend a lot of time sifting through the cryptic trace files. And dumps provide only point-in-time snapshots of ever-changing Oracle memory structures. But an external program can read any Oracle memory region at any time.