RE: Direct SGA access problem because of structs' changing start addresses (e.g., x$ksmsp)

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Wed, 8 Jan 2014 08:48:36 +0000
Message-ID: <CE70217733273F49A8A162EE074F64D901DD4798_at_exmbx05.thus.corp>




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
_at_jloracle

________________________________________
From: oracle-l-bounce_at_freelists.org [oracle-l-bounce_at_freelists.org] on behalf of keydana@gmx.de [keydana@gmx.de]
Sent: 07 January 2014 22:33
To: oracle-l_at_freelists.org
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--
http://www.freelists.org/webpage/oracle-l


--
http://www.freelists.org/webpage/oracle-l Received on Wed Jan 08 2014 - 09:48:36 CET

Original text of this message