x$ksmsp looks like a segmented array dynamically created in your session memory. (Check the addr value against the min() and max() ksmchptr.) You need some other way to find the linked list that connects all the items in the shared pool - which probably means checking the right variables in x$ksmfsv Regards Jonathan Lewis http://jonathanlewis.wordpress.com @jloracle ________________________________________ From: oracle-l-bounce@xxxxxxxxxxxxx [oracle-l-bounce@xxxxxxxxxxxxx] on behalf of keydana@xxxxxx [keydana@xxxxxx] Sent: 07 January 2014 22:33 To: oracle-l@xxxxxxxxxxxxx Subject: Direct SGA access problem because of structs' changing start addresses (e.g., x$ksmsp) Hi, I'm trying to write some Haskell code for direct SGA access of - preferredly, as of today - x$ksmsp (sql queries against this table being expensive, possibly...), and for that I'm following the approach from Kyle Hailey, as detailed in the Oracle Wait Interface book. So I need the struct's start address, but unfortunately, when I query x$ksmsp several times in a row - even from the same sqlplus process - I get different results every time... (Actually, this seems to be the case with most fixed tables, apart from those "fixed" fixed ones as x$ksuse...) It'd be great if anyone had advice, or an idea, what I could do to get this working all the same (and as to what the reason might be?) It ought to be possible somehow to do this, as I've tried oradebug direct access with x$ksmsp and it worked (of course, it runs in sqlplus, so I don't know...) Thanks a lot in advance! Sigrid-- //www.freelists.org/webpage/oracle-l -- //www.freelists.org/webpage/oracle-l