Re: Seeing the same session_id used on different nodes alot in RAC 11g

From: <keydana_at_gmx.de>
Date: Fri, 27 Feb 2015 18:46:31 +0100
Message-Id: <F2C82F23-D88F-4171-A91F-C26A3B13B41F_at_gmx.de>



Thanks Stefan, it’s a shame I forgot about this (time for yet another read of the book!) :-)

> Am 27.02.2015 um 18:43 schrieb Stefan Koehler <contact_at_soocs.de>:
>
> Hi Sigrid,
> Jonathan Lewis described the difference and its functionality very well in his book "Oracle Core: Essential Internals for DBAs and Developers". I am
> just quoting from page 59.
>
>
> "An array is essentially a list of objects of the same shape and size, and since all the objects are the same size, it’s easy to walk through the
> array looking at each object in turn. For example, x$ksuse (the structure for user sessions reported through v$session) is a fixed array with rows of
> 11,360 bytes in Oracle 11.2.0.2 on 32-bit Windows. Oracle need only record the starting position of the array, and the code can work out the starting
> position of any row in the array by simple arithmetic.
>
> In some cases the array is a “segmented” array, which means Oracle allocates an initial chunk of memory for a fixed number of array items, but may
> allocate more chunks dynamically as needed. In this case Oracle needs to record the addresses of the starting point of each chunk—which might mean
> that it keeps a little list of the chunks, or that each chunk includes a little information about the next chunk in the list. The structure x$ktatl
> (the entry labeled temporary_table_locks in v$resource_limit) is such a case. In a little test I ran against a 10g instance, this started life as an
> array with 16 entries of 144 bytes each, but then added chunks of 16 rows at a time, with each chunk allocated fairly randomly in memory. In a similar
> fashion, although x$ksqrs and x$ksqeq start with a much larger array size they can grow by chunks of 32 rows at a time."
>
>
> So segmented means that it may allocates chunks dynamically and it needs to track the pointer / address to the next randomly distributed memory chunk
> (not only between array entries).
>
> Best Regards
> Stefan Koehler
>
> Freelance Oracle performance consultant and researcher
> Homepage: http://www.soocs.de
> Twitter: _at_OracleSK
>

>> "keydana_at_gmx.de" <keydana_at_gmx.de> hat am 27. Februar 2015 um 18:24 geschrieben:
>> 
>> Wanted to know for a long time, this is the opportunity to ask, - what exactly do you mean by that (segmented array signifying „list is in-built“)?
>> 
>> Does it mean the structs (the elements of the array) have pointers to the previous & next element? (If yes, I wouldn’t have guessed that from the
>> expression „segmented array“)
>> 
>> thanks!
>> Sigrid

--
http://www.freelists.org/webpage/oracle-l
Received on Fri Feb 27 2015 - 18:46:31 CET

Original text of this message