Oracle memory structures mutate rapidly , and SQL is not suitable for fast and repetitive access. For example, in an Oracle instance with many user connections, you may not be able to sample the V$SESSION_WAIT view 50 or more times per second. But it is not a problem for an external C program to do 50 or more read iterations per second on a memory region. (The critics of the SQL and PL/SQL sampling methods think they need such a high frequency sampling. We think it is overkill for sampling. Oracle Database 10 g only samples once every second.) An external C program can read a memory region faster than SQL, provided there is no need to join and sort data from various memory structures.