Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: How to trace what is happening inside the stored procedure

Re: How to trace what is happening inside the stored procedure

From: Tanel Põder <tanel.poder.003_at_mail.ee>
Date: Mon, 7 Feb 2005 00:18:08 -0000
Message-ID: <05eb01c50caa$8068e9a0$0301a8c0@porgand>


> What, from 32 bytes? In this day and age of multi-Gb memories even in PC=
> 's?

Well, the structure containing session information is a fixed array as far as I know, with fixed data element offsets, so you need to pre-allocate the max amount of memory needed for for all elements, for each session record, so in large number of sessions this might take several(tens) of megabytes.

Yep, I don't argue with you, memorywise it's nothing in todays servers, but trying to understand, why Oracle has gone with such figures - for old-school low-level kernel developers in Oracle this 32 and 48 bytes may have seemed to be more than enough, because historically they have done well with less than 10 byte abbreviated variable and function names in kernel (like ksusegst, ksmsp, kglob, ktuxe etc..).

Another reason why keeping these structures small I can think of is that if your session structures start to span several virtual memory page boundaries, more soft page faults will occur and since these structures are accessed quite often, it might mean more CPU usage due VM engine servicing in systems using small pagesizes such 4kB. I think this is unlikely the reason, since additional CPU usage will be marginal, especially with modern CPUs with more usable TLB cache slots and large pagesizes, but the point is that it's sometimes about more than just memory usage, but also memory usage performance.

Tanel.

--
http://www.freelists.org/webpage/oracle-l
Received on Sun Feb 06 2005 - 19:20:53 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US