RE: Problem - V$BUFFER_POOL_STATISTICS

2001-10-20 Thread Steve Adams

Hi Saurabh,

Try running $ORACLE_HOME/rdbms/admin/catperf.sql first.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.secularislam.org/call.htm  -  For Muslims
@   http://www.christianity.net.au/   -  For all

-Original Message-
Sent: Saturday, 20 October 2001 21:05
To: Multiple recipients of list ORACLE-L


Hi all,
Is anyone using Oracle Statspack for performance monitoring.

I want to use it, i ran the required scripts for creating the PERFSTAT schema, tables, 
synonyms and STATSPACK package.
but the package creation is giving problem with Dictionary table 
V$BUFFER_POOL_STATISTICS( as it is not found in the
database dictionary)
The schema script created the stat$buffer_pool_statistics table to use data from above 
dict table but package could not
be compiled successfully as dictionary table is not found.

can anybody explain me why it happened.

I'm using Oracle 8.1.5 on NT.
thanks in adv

Saurabh Sharma

Mail to   : [EMAIL PROTECTED]
  : [EMAIL PROTECTED]
Contact   : saurabh00pc @ MSN / Yahoo

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: os block size versus oracle bock size

2001-10-23 Thread Steve Adams

Hi All,

Oracle uses direct I/O on W2K so the O/S block size is an irrelevance.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.secularislam.org/call.htm  -  For Muslims
@   http://www.christianity.net.au/   -  For all

-Original Message-

hi all

we have an oracle block size of 8k and i believe our W2K server has a
default
os block size of 4k.
Is this a problem with the performance ?

thanks


g.g. kor
rdw ict groningen

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: DB FILE PARALLEL WRITE

2001-10-25 Thread Steve Adams

Hi Jack,

It is a background wait, so unless user processes are waiting for DBWn in 'free buffer 
waits' or 'write complete waits'
then you don't have a problem, no matter how big the 'db file parallel wait' numbers 
are.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.secularislam.org/call.htm  -  For Muslims
@   http://www.christianity.net.au/   -  For all


-Original Message-
Sent: Wednesday, 24 October 2001 19:15
To: Multiple recipients of list ORACLE-L


Hi,


I have this DB FILE PARALLEL WRITE as the top event (right after
SQL*NET,rdbms.,pmon  smon) and according to the documentation this
has to do with my DBWR but no mention is done on how to solve this.
Is this purely another indication of poor disk performance or should I be
looking somewhere else?

TIA


jack

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: extent deallocation question

2001-10-29 Thread Steve Adams

Hi Jeremiah,

The cross instance call is a reuse block range call, not a checkpoint object call. 
Thus a separate scan of the cache
is needed for every extent. The reason why dirty blocks from dropped extents cannot be 
allowed to stay in cache is that
the blocks might immediately be allocated to another object.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.secularislam.org/call.htm  -  For Muslims
@   http://www.christianity.net.au/   -  For all


-Original Message-
Sent: Monday, 29 October 2001 13:55
To: Multiple recipients of list ORACLE-L


Thanks for the reply.  This is the first time I have heard of an
object-level checkpoint.

I still don't understand a couple things about this.  If the wait is
for checkpointing of the blocks composing the deallocated extents, why
does a 2Gb segment with 10 extents drop so much faster than a 2Gb
segment with 20,000 extents?  Does the session performing the DDL
require the object checkpoint to complete for every extent
deallocated, before the DDL proceeds?

Why should such a checkpoint be necessary?  Why can't the blocks just
go on the LRUW list like all the other dirty blocks?

If the speed of these object checkpoints is limited by the checkpoint
batch portion of the DBWR write batch, can they be sped up by
increasing the value of _db_block_checkpoint_batch to a larger
proportion of the DBWR write batch (as ascertained from x$kvii)?

It seems like if they just put the blocks from deallocated extents on
the dirty list, then the checkpointing could be automatically made
more agressive through use of the db_block_max_dirty_target feature.
That way as soon as a lot of dirty blocks got put on the LRUW list,
the checkpoint portion of the write batch could be automatically
increased.

--
Jeremiah Wilton
http://www.speakeasy.net/~jwilton

On Sun, 28 Oct 2001, [EMAIL PROTECTED] wrote:

 When you truncate or drop an object, all the extents/buffers
 associated with that object need to be flushed to the disk, meaning an
 object checkpoint has to take place. DBW recieves an object checkpoint
 call, from the client process. Client process then waits for the IPC
 message from the DBW process for the object checkpoint call completion.
 The wait event you see is that the client is waiting for this IPC message
 from DBW. Once DBW completes flushing all the buffers associated with the
 objects, DBW will send back an IPC message to the client.
 Interestingly, there is are two lists( main and auxcillary lists)
 in 8i buffer cache just for this object checkpoint call, which is supposed
 to improve the performance of these object checkpoint calls. If you have
 very large buffer cache, DBW can take long time to flush these buffers.
 If you truncate a table, then all the indexes associated with
 these tables (an their buffers) need to be checkpointed. Further, only
 fraction of writes are dedicated for these checkpoints and that could be
 another reason for longer waits.

 Jeremiah Wilton [EMAIL PROTECTED]

 Using dictionary-managed tablespaces, it can sometimes take a very
 long time to drop or truncate a segment with many tens of thousands of
 extents, because Oracle takes a long time to update UET$ and FET$.

 This can be a serious problem for some people because the session
 performing the DDL holds the ST enqueue for the duration of the extent
 deallocation.

 During these long extent deallocations, I observe the session
 performing DDL waiting on IPC with the database writer.  Can anyone
 tell me why these long extent allocations spend the vast majority of
 their time waiting on DBW0?  Does every block in UET$ and FET$ have to
 get written out before the deallocate can proceed?  If so, why?

 Using a normal application, I can delete and insert tens of thousands
 of rows in just a few seconds.  What takes Oracle so long with UET$
 and FET$?

 BTW, this is not a problem that I personally have - it is a purely
 academic question.

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: extent deallocation question

2001-10-29 Thread Steve Adams

Hi Riyaj,

The checkpoint object call is used prior to a direct read of an object. DBW0 scans the 
cache once based on the obj#.
This was introduced in 8.0 as an optimization for parallel query. Previously each 
extent was checkpointed separately.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.secularislam.org/call.htm  -  For Muslims
@   http://www.christianity.net.au/   -  For all

-Original Message-
Sent: Tuesday, 30 October 2001 3:10
To: Multiple recipients of list ORACLE-L



Steve
I thought the drop/truncate of the objects will do 'checkpoint object ' call 
and DBW in turn will do extent
based checkpointing. I am not even going to try argue with you :-) Could you please 
explain to us : What are the reasons
for 'checkpoint object call ' and  ' reuse block range calls ? What statement triggers 
them ?

Thanks in advance,
Riyaj Re-yas Shamsudeen
Certified Oracle DBA
i2 technologies   www.i2.com


Steve Adams [EMAIL PROTECTED]
Sent by: [EMAIL PROTECTED]
10/29/01 05:00 AM
Please respond to ORACLE-L

To:Multiple recipients of list ORACLE-L [EMAIL PROTECTED]
cc:
Subject:RE: extent deallocation question



Hi Jeremiah,

The cross instance call is a reuse block range call, not a checkpoint object call. 
Thus a separate scan of the cache
is needed for every extent. The reason why dirty blocks from dropped extents cannot be 
allowed to stay in cache is that
the blocks might immediately be allocated to another object.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.secularislam.org/call.htm  -  For Muslims
@   http://www.christianity.net.au/   -  For all


-Original Message-
Sent: Monday, 29 October 2001 13:55
To: Multiple recipients of list ORACLE-L


Thanks for the reply.  This is the first time I have heard of an
object-level checkpoint.

I still don't understand a couple things about this.  If the wait is
for checkpointing of the blocks composing the deallocated extents, why
does a 2Gb segment with 10 extents drop so much faster than a 2Gb
segment with 20,000 extents?  Does the session performing the DDL
require the object checkpoint to complete for every extent
deallocated, before the DDL proceeds?

Why should such a checkpoint be necessary?  Why can't the blocks just
go on the LRUW list like all the other dirty blocks?

If the speed of these object checkpoints is limited by the checkpoint
batch portion of the DBWR write batch, can they be sped up by
increasing the value of _db_block_checkpoint_batch to a larger
proportion of the DBWR write batch (as ascertained from x$kvii)?

It seems like if they just put the blocks from deallocated extents on
the dirty list, then the checkpointing could be automatically made
more agressive through use of the db_block_max_dirty_target feature.
That way as soon as a lot of dirty blocks got put on the LRUW list,
the checkpoint portion of the write batch could be automatically
increased.

--
Jeremiah Wilton
http://www.speakeasy.net/~jwilton

On Sun, 28 Oct 2001, [EMAIL PROTECTED] wrote:

 When you truncate or drop an object, all the extents/buffers
 associated with that object need to be flushed to the disk, meaning an
 object checkpoint has to take place. DBW recieves an object checkpoint
 call, from the client process. Client process then waits for the IPC
 message from the DBW process for the object checkpoint call completion.
 The wait event you see is that the client is waiting for this IPC message
 from DBW. Once DBW completes flushing all the buffers associated with the
 objects, DBW will send back an IPC message to the client.
 Interestingly, there is are two lists( main and auxcillary lists)
 in 8i buffer cache just for this object checkpoint call, which is supposed
 to improve the performance of these object checkpoint calls. If you have
 very large buffer cache, DBW can take long time to flush these buffers.
 If you truncate a table, then all the indexes associated with
 these tables (an their buffers) need to be checkpointed. Further, only
 fraction of writes are dedicated for these checkpoints and that could be
 another reason for longer waits.

 Jeremiah Wilton [EMAIL PROTECTED]

 Using dictionary-managed tablespaces, it can sometimes take a very
 long time to drop or truncate a segment with many tens of thousands of
 extents, because Oracle takes a long time to update UET$ and FET$.

 This can be a serious problem for some people because the session
 performing the DDL holds the ST enqueue for the duration of the extent
 deallocation.

 During these long extent deallocations, I observe the session
 performing DDL waiting on IPC with the database writer.  Can anyone
 tell me why these long extent allocations spend the vast majority of
 their time waiting on DBW0?  Does every block in UET$ and FET$ have to
 get written out before the deallocate can proceed?  If so

RE: How can I tell if a procedure/package is running?

2001-10-29 Thread Steve Adams

Hi Doug,

You can look at the mode in which the stored procedure or package is pinned in the 
library cache. This information is in
X$KGLOB.KGLHDPMD. A value of 2 indicates that the object is pinned in shared mode by 
one or more sessions. If necessary,
you can join to X$KGLPN to find the sessions holding the pins. See 
executing_packages.sql at
http://www.ixora.com.au/scripts/misc.htm#executing_packages for an example.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.secularislam.org/call.htm  -  For Muslims
@   http://www.christianity.net.au/   -  For all

-Original Message-

How can I tell if a stored procedure or package is in the middle of execution?

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: How can I tell if a procedure/package is running?

2001-10-29 Thread Steve Adams

Hi Doug,

You can look at the mode in which the stored procedure or package is pinned in the 
library cache. This information is in
X$KGLOB.KGLHDPMD. A value of 2 indicates that the object is pinned in shared mode by 
one or more sessions. If necessary,
you can join to X$KGLPN to find the sessions holding the pins. See 
executing_packages.sql at
http://www.ixora.com.au/scripts/misc.htm#executing_packages for an example.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.secularislam.org/call.htm  -  For Muslims
@   http://www.christianity.net.au/   -  For all

-Original Message-

How can I tell if a stored procedure or package is in the middle of execution?


-
You can view this message online at http://www.ixora.com.au/q+a/0110/30141015.htm
To unsubscribe from Ixora Answers send a blank email to [EMAIL PROTECTED]


-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: How can I tell if a procedure/package is running?

2001-10-29 Thread Steve Adams

Hi Rahul,

0 means not pinned; 3 means pinned in exclusive mode.
I don't know what 1 means. I'm not accustomed to seeing it.
Do you have any examples?

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.secularislam.org/call.htm  -  For Muslims
@   http://www.christianity.net.au/   -  For all


-Original Message-
Sent: Tuesday, 30 October 2001 16:00
To: Multiple recipients of list ORACLE-L


out of curiosity...
what does the values 0 and 1 implies ? ( in X$KGLOB.KGLHDPMD) 

 --
 From: Steve Adams[SMTP:[EMAIL PROTECTED]]
 Reply To: [EMAIL PROTECTED]
 Sent: Tuesday, October 30, 2001 10:45 AM
 To:   Multiple recipients of list ORACLE-L
 Subject:  RE: How can I tell if a procedure/package is running?
 
 Hi Doug,
 
 You can look at the mode in which the stored procedure or package is
 pinned in the library cache. This information is in
 X$KGLOB.KGLHDPMD. A value of 2 indicates that the object is pinned in
 shared mode by one or more sessions. If necessary,
 you can join to X$KGLPN to find the sessions holding the pins. See
 executing_packages.sql at
 http://www.ixora.com.au/scripts/misc.htm#executing_packages for an
 example.
 
 @   Regards,
 @   Steve Adams
 @   http://www.ixora.com.au/  -  For DBAs
 @   http://www.secularislam.org/call.htm  -  For Muslims
 @   http://www.christianity.net.au/   -  For all
 
 -Original Message-
 
 How can I tell if a stored procedure or package is in the middle of
 execution?

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: How can I tell if a procedure/package is running?

2001-10-30 Thread Steve Adams

Hi Rahul,

Ah, I see. You're looking at KGLHDLMD instead of KGLHDPMD.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.secularislam.org/call.htm  -  For Muslims
@   http://www.christianity.net.au/   -  For all


-Original Message-
Sent: Tuesday, 30 October 2001 17:18
To: Rahul; Multiple recipients of list ORACLE-L; 'Steve Adams'


ADDR  INDX   INST_ID KGLHDADR KGLHDPAR KGLNAOWN   KGLNAOBJ

 - -   --

---

2025F078   102 1 315F16D4 315F16D4SELECT COUNT(*)
FROM LETTER  WHERE TELEPHONENUMBER = :b1  AND CUSTOMERID = :b2  AND ENDDATE
= :b3
 


2025F074   108 1 30A2E4F8 30A2E4F8 NC_SASSGIVE_ASCII_VALUE



there are queries and also functions with the X$KGLOB.KGLHDPMD as 1, the
result from 
select * from X$KGLOB where KGLHDLMD =1 are too long to cut-paste here in
full. 


 --
 From: Steve Adams[SMTP:[EMAIL PROTECTED]]
 Sent: Tuesday, October 30, 2001 2:45 PM
 To:   Rahul; Multiple recipients of list ORACLE-L
 Subject:  RE: How can I tell if a procedure/package is running?
 
 Hi Rahul,
 
 0 means not pinned; 3 means pinned in exclusive mode.
 I don't know what 1 means. I'm not accustomed to seeing it.
 Do you have any examples?
 
 @   Regards,
 @   Steve Adams
 @   http://www.ixora.com.au/  -  For DBAs
 @   http://www.secularislam.org/call.htm  -  For Muslims
 @   http://www.christianity.net.au/   -  For all
 
 
 -Original Message-
 From: Rahul [mailto:[EMAIL PROTECTED]]
 Sent: Tuesday, 30 October 2001 16:00
 To: Multiple recipients of list ORACLE-L
 Subject: RE: How can I tell if a procedure/package is running?
 
 
 out of curiosity...
 what does the values 0 and 1 implies ? ( in X$KGLOB.KGLHDPMD) 
 
  --
  From:   Steve Adams[SMTP:[EMAIL PROTECTED]]
  Reply To:   [EMAIL PROTECTED]
  Sent:   Tuesday, October 30, 2001 10:45 AM
  To: Multiple recipients of list ORACLE-L
  Subject:RE: How can I tell if a procedure/package is running?
  
  Hi Doug,
  
  You can look at the mode in which the stored procedure or package is
  pinned in the library cache. This information is in
  X$KGLOB.KGLHDPMD. A value of 2 indicates that the object is pinned in
  shared mode by one or more sessions. If necessary,
  you can join to X$KGLPN to find the sessions holding the pins. See
  executing_packages.sql at
  http://www.ixora.com.au/scripts/misc.htm#executing_packages for an
  example.
  
  @   Regards,
  @   Steve Adams
  @   http://www.ixora.com.au/  -  For DBAs
  @   http://www.secularislam.org/call.htm  -  For Muslims
  @   http://www.christianity.net.au/   -  For all
  
  -Original Message-
  
  How can I tell if a stored procedure or package is in the middle of
  execution?
 
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: How can I tell if a procedure/package is running?

2001-10-30 Thread Steve Adams

Hi Nirmal,

There is some information about the X$ tables available on the Ixora web site.
However, knowledge of the X$ tables is not really important for most DBAs.
They are only useful in rare, advanced tuning and diagnostic situations.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.secularislam.org/call.htm  -  For Muslims
@   http://www.christianity.net.au/   -  For all

-Original Message-
Sent: Tuesday, 30 October 2001 19:25
To: Multiple recipients of list ORACLE-L


Hi adams 
What should i get details of X$ tables. 
How much these tables are important as a DBA.. 
Rgds, 
Nirmal, 
-Original Message- 
Sent:   Tuesday, October 30, 2001 9:45 AM 
To: Multiple recipients of list ORACLE-L 
Hi Rahul, 
0 means not pinned; 3 means pinned in exclusive mode. 
I don't know what 1 means. I'm not accustomed to seeing it. 
Do you have any examples? 
@   Regards, 
@   Steve Adams 
@   http://www.ixora.com.au/  -  For DBAs 
@   http://www.secularislam.org/call.htm  -  For Muslims 
@   http://www.christianity.net.au/   -  For all 


-Original Message- 
Sent: Tuesday, 30 October 2001 16:00 
To: Multiple recipients of list ORACLE-L 


out of curiosity... 
what does the values 0 and 1 implies ? ( in X$KGLOB.KGLHDPMD) 
 -- 
 From: Steve Adams[SMTP:[EMAIL PROTECTED]] 
 Reply To: [EMAIL PROTECTED] 
 Sent: Tuesday, October 30, 2001 10:45 AM 
 To:   Multiple recipients of list ORACLE-L 
 Subject:  RE: How can I tell if a procedure/package is running? 
 
 Hi Doug, 
 
 You can look at the mode in which the stored procedure or package is 
 pinned in the library cache. This information is in 
 X$KGLOB.KGLHDPMD. A value of 2 indicates that the object is pinned in 
 shared mode by one or more sessions. If necessary, 
 you can join to X$KGLPN to find the sessions holding the pins. See 
 executing_packages.sql at 
 http://www.ixora.com.au/scripts/misc.htm#executing_packages for an 
 example. 
 
 @   Regards, 
 @   Steve Adams 
 @   http://www.ixora.com.au/  -  For DBAs 
 @   http://www.secularislam.org/call.htm  -  For Muslims 
 @   http://www.christianity.net.au/   -  For all 
 
 -Original Message- 
 
 How can I tell if a stored procedure or package is in the middle of 
 execution? 
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com 
-- 
Author: Steve Adams 
  INET: [EMAIL PROTECTED] 
Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051 
San Diego, California-- Public Internet access / Mailing Lists 
 
To REMOVE yourself from this mailing list, send an E-Mail message 
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in 
the message BODY, include a line containing: UNSUB ORACLE-L 
(or the name of mailing list you want to be removed from).  You may 
also send the HELP command for other information (like subscribing). 
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: Identifying user and locked table row in Oracle 8i

2001-10-30 Thread Steve Adams

Hi Tamas,

When a session is waiting for a row-level lock you can see the row required in the 
V$SESSION columns ROW_WAIT_OBJ#,
ROW_WAIT_FILE#, ROW_WAIT_BLOCK# and ROW_WAIT_ROW#. A script like Oracle's utllockt.sql 
can be used to identify the
blocker.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.secularislam.org/call.htm  -  For Muslims
@   http://www.christianity.net.au/   -  For all


-Original Message-
Sent: Wednesday, 31 October 2001 2:21
To: Multiple recipients of list ORACLE-L


Hi,

I am facing a locking problem with Forms 6i and Oracle 8iR3 that did not
occure with Oracle 8iR2.

To pinpoint the problem, I would need to identify the locking user AND the
specific record that causes the problem. Does some of you possibly have a
script that I can let our customer run when this deadlock situation occures?

TIA,

Tamas Szecsy
--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: Szecsy Tamas
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: Arch configuration -- I/O stuck

2001-10-31 Thread Steve Adams

Hi Pablo,

The 'ls' is probably getting stuck because the I/O is very slow and file system 
metadata writes are stuck in the I/O
queue while locks are held on the file system metadata pending the completion of those 
writes.

The problem could be that you are saturating the cache allocations for the EMC LUNs 
containing your archive destination
file system. See the answer at http://www.ixora.com.au/q+a/0010/20102738.htm for a bit 
about the EMC cache allocation
policy. To solve the problem you can use LVM to stripe a large number of small LUNs 
together so as to increase the total
amount of cache available for the archival writes. You would also do well to avoid 
RAID-S of course!

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.christianity.net.au/   -  For all



-Original Message-
Sent: Thursday, 1 November 2001 5:45
To: Multiple recipients of list ORACLE-L


Hi list,

  Oracle 7.3.4
  HP-UX
  log_archive_buffer_size=32 (redo log blocks = 1K)
  log_archive_buffers=4
  Filesystem based (no direct I/O)

  I've been detecting that my box gets stucked
eventually for some time.
  When this happens I can't do even a ls (it
actually executes it but it takes a long time).
  If I check my cpu with TOP, I see 47% idle time and
there's no process monopolizing the CPU.
  But when I check disk activity with sar -d I see
that  one disk is 100% busy and it's avwait+avserv 
1000 ms. The other disks are fine.
  I then check disk activity with Glance and I can
identify the process that's writting/reading on this
disk is: ARCH (ARCH is writting a 1.9 GB redo log.)

  So here are my doubts:
  1)If only one disk is saturated (I've got about
30 disks in this box (a SYMMETRIX array) with some
controllers), why does the whole box get stucked? why
are even other applications connected to other
instances running on this box affected? (may be
because the HP-UX LVM system gets saturated???)

 2) What can I do to avoid this problem?, (reduce
log_archive_buffers parameter may be, or increase
log_archive_buffer_size)

help me on this
Thanks

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: Synonyms can be VERY bad for performance

2001-10-31 Thread Steve Adams

Hi John,

If the CBO needs to access a table that has no statistics, it does not actually 
estimate the statistics. It just gets
the high water mark by reading the segment header block and uses its default 
assumption of an average row length of 100
bytes to estimate the cardinality of the table.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.christianity.net.au/   -  For all


-Original Message-
Sent: Thursday, 1 November 2001 10:10
To: Multiple recipients of list ORACLE-L


Greg,

I may be way off here but FIRST_ROWS will not only force the CBO to be used
on SYS objects, it will *estimate* statistics on all related objects. This
will result in large elapsed times and I/O during the parse phase (for the
ESTIMATE part) as well as the incorrect path and resultant extra I/O during
the execute phase.

By extension, if you see large values in the parse phase of a tkprof output,
it may indicate that stats are being estimated and thus some objects have
not been analyzed. (Can someone validate this? Hint, hint: Steve :)

John Kanagaraj
Oracle Applications DBA
DBSoft Inc
(W): 408-970-7002

Listen to great commercial-free christian music 24x7 at www.klove.com

** The opinions and statements above are entirely my own and not
those of my employer or clients **
 -Original Message-
 From: A. Bardeen [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, October 31, 2001 3:30 PM
 To: Multiple recipients of list ORACLE-L
 Subject: Re: Synonyms can be VERY bad for performance


 Greg,

 Hey!  I resemble that remark ;)

 The data dictionary views are optimized to use the RBO
 or are heavily hinted to force a specific access path.
  ALL_ROWS and FIRST_ROWS force the CBO to be used so a
 different access path may be taken resulting in poor
 performance.

 Obligatory notes:

 Note: 35272.1 Is ANALYZE on the Data Dictionary
 Supported (TABLES OWNED BY SYS)?


 Note: 35934.1 TECH: Cost Based Optimizer - Common
 Misconceptions and Issues

 Note: 66484.1 Which Optimizer is used

 HTH,

 -- Anita

 --- Greg Moore [EMAIL PROTECTED] wrote:
   Because we were in first_rows, queries
   against the data dictionary were
   optimized in first_rows mode rather than rule.
   This was despite us not having any statistics
   on system or sys objects.
 
  Is this standard behavior?
 
  What about the warnings not to analyze SYS because
  it's optimized for Rule?
  Is it true that simply invoking first_rows means
  that's out the window and
  you get the CBO used on SYS anyway, even if there
  are no statistics?
 
  I get the feeling we're going to see an email from
  Anita saying this is bug
  number XXX, fixed in patch YYY, and we can read all
  about it in Note ZZZ.
 
  --
  Please see the official ORACLE-L FAQ:
  http://www.orafaq.com
  --
  Author: Greg Moore
INET: [EMAIL PROTECTED]
 
  Fat City Network Services-- (858) 538-5051  FAX:
  (858) 538-5051
  San Diego, California-- Public Internet
  access / Mailing Lists
 
 
  To REMOVE yourself from this mailing list, send an
  E-Mail message
  to: [EMAIL PROTECTED] (note EXACT spelling of
  'ListGuru') and in
  the message BODY, include a line containing: UNSUB
  ORACLE-L
  (or the name of mailing list you want to be removed
  from).  You may
  also send the HELP command for other information
  (like subscribing).


 __
 Do You Yahoo!?
 Make a great connection at Yahoo! Personals.
 http://personals.yahoo.com
 --
 Please see the official ORACLE-L FAQ: http://www.orafaq.com
 --
 Author: A. Bardeen
   INET: [EMAIL PROTECTED]

 Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
 San Diego, California-- Public Internet access / Mailing Lists
 
 To REMOVE yourself from this mailing list, send an E-Mail message
 to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
 the message BODY, include a line containing: UNSUB ORACLE-L
 (or the name of mailing list you want to be removed from).  You may
 also send the HELP command for other information (like subscribing).

--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: John Kanagaraj
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL

RE: TTI Layer Function codes

2001-11-01 Thread Steve Adams

Hi Raj,

I would imagine that the details of the implementation of the two-task common protocol 
and its interface functions are
not the sort of documentation that Oracle is going to make available to customers!

Other than the obvious step of contacting Support, check the operating system hardware 
diagnostic logs for evidence of
either memory or network errors, and make sure that you don't have someone trying to 
use some old client software that
is not compatible with the RDBMS version.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.christianity.net.au/   -  For all


-Original Message-
Sent: Friday, 2 November 2001 6:46
To: Multiple recipients of list ORACLE-L


Hi all,

I am investigating some ORA-600 [12333] errors. According to note 35928.1
the second argument represents TTI Layer Function Code, followed by FUNCTION
Code and SEQUENCE.

I tried to look up TTI Layer Function codes but couldn't find any reference,
does anyone know where I can find them?

Thanks
Raj
__
Rajendra Jamadagni  MIS, ESPN Inc.
Rajendra dot Jamadagni at ESPN dot com
Any opinion expressed here is personal and doesn't reflect that of ESPN Inc.

QOTD: Any clod can have facts, but having an opinion is an art !


-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: Arch configuration -- I/O stuck

2001-11-01 Thread Steve Adams

Hi Pablo,

I've seen an 'ls' hang for more than a minute under 10.20 when there were a lot of 
delayed writes pending on an
unrelated file-system. A colleague of mine (Chris Bunting) did some testing to 
reproduce the problem and concluded that
all filesystems of the same type (JFS or HFS) were affected. HP made some kernel 
changes for 11.0 that have reduced the
severity of the problem, but it can still occur.

If your case the archive writes are not delayed writes because Oracle explicitly opens 
the files in synchronous mode, so
you should not see a delay any longer than that corresponding to the time that it 
would take your Symmetrix box to
destage the cache allocations for the target LUNs, unless there happens to be 
simultaneous heavy delayed write activity
elsewhere on the system.

The failure of the multiblock_read_test.sql script probably indicates that the large 
table that you scanned already
had a large number of block in the cache.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.christianity.net.au/   -  For all


-Original Message-
Sent: Friday, 2 November 2001 6:39
To: Steve Adams; Multiple recipients of list ORACLE-L


Steve, thanks for the help and for the url and the
advice of stripping.

I don't understand what I'm pasting here , I'm
executing a 'ls' in a FS that's in a different disk in
differents LUNs (on the same Symmetrix), why is it
still stucking. Shouldn't it be placed in a different
queue??

The 'ls' is probably getting stuck because the I/O is
very slow and file system metadata writes are stuck in
the I/O
queue while locks are held on the file system metadata
pending the completion of those writes.



One more question, besides what you just advised me,
I've been trying to reduce ARCH bandwidth (as I read
in a TIP at your site), to spread ARCH work along more
time and reduce the impact in foreground processes. So
I've set log_archive_buffers from 4 to 2 and today
I've tried to set log_archive_buffer_size to the
MAX_IO_SIZE of the OS. But I found a problem with
this.

I tried to check what was the MAX_IO_SIZE, so I used
10046 event and check at scattered reads in a big FTS
(as you do in your scripts) and I always got p3=5. I
checked this into 2 differents databases running on
the same box. Both reported p3=5 (5 blocks I think),
but the surprise is that one of them has got
db_block_size=4K and the other db_block_size=8K.

How can it be possible? according to this test
MAX_IO_SIZE could be 20K or 40K. what's wrong here?

And something worst, MAX_IO_SIZE can't be so small,
right? I thought it was 1MB or 512K in HP-UX 11.0

thannks for your time.
TIA







 --- Steve Adams [EMAIL PROTECTED] escribió:
 Hi Pablo,

 The 'ls' is probably getting stuck because the I/O
 is very slow and file system metadata writes are
 stuck in the I/O
 queue while locks are held on the file system
 metadata pending the completion of those writes.

 The problem could be that you are saturating the
 cache allocations for the EMC LUNs containing your
 archive destination
 file system. See the answer at
 http://www.ixora.com.au/q+a/0010/20102738.htm for a
 bit about the EMC cache allocation
 policy. To solve the problem you can use LVM to
 stripe a large number of small LUNs together so as
 to increase the total
 amount of cache available for the archival writes.
 You would also do well to avoid RAID-S of course!

 @   Regards,
 @   Steve Adams
 @   http://www.ixora.com.au/  -  For
 DBAs
 @   http://www.christianity.net.au/   -  For all



 -Original Message-
 From: Pablo ksksksk [mailto:[EMAIL PROTECTED]]
 Sent: Thursday, 1 November 2001 5:45
 To: Multiple recipients of list ORACLE-L
 Subject: Arch configuration -- I/O stuck


 Hi list,

   Oracle 7.3.4
   HP-UX
   log_archive_buffer_size=32 (redo log blocks = 1K)
   log_archive_buffers=4
   Filesystem based (no direct I/O)

   I've been detecting that my box gets stucked
 eventually for some time.
   When this happens I can't do even a ls (it
 actually executes it but it takes a long time).
   If I check my cpu with TOP, I see 47% idle time
 and
 there's no process monopolizing the CPU.
   But when I check disk activity with sar -d I see
 that  one disk is 100% busy and it's avwait+avserv 
 1000 ms. The other disks are fine.
   I then check disk activity with Glance and I can
 identify the process that's writting/reading on this
 disk is: ARCH (ARCH is writting a 1.9 GB redo log.)

   So here are my doubts:
   1)If only one disk is saturated (I've got
 about
 30 disks in this box (a SYMMETRIX array) with some
 controllers), why does the whole box get stucked?
 why
 are even other applications connected to other
 instances running on this box affected? (may be
 because the HP-UX LVM system gets saturated???)

  2) What can I do to avoid this problem?,
 (reduce
 log_archive_buffers parameter may be, or increase
 log_archive_buffer_size)

 help me on this
 Thanks

RE: Raw partition Vs File System

2001-11-12 Thread Steve Adams

Hi All,

Does anyone have an email address for Bert? I looked for his email address when I 
first read that article a week ago,
but did not find one. I think I know what was wrong with his test, but it is hard to 
be sure because he left out a lot
of the details.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.christianity.net.au/   -  For all


-Original Message-
Sent: Friday, 9 November 2001 21:20
To: Multiple recipients of list ORACLE-L



Did anyone read Bert Scalzo's article in Pipeline Newsletter this month
(http://www.revealnet.com/newsletter-v2/linux2.html)?  He was benchmarking
various filesystems under Linux (EXT2, EXT3, Reiser, IBM JFS and RAW).  I
was suprised (and so was he) to see worst performance on RAW devices.  I
presume this is a Linux-specific issue: can anyone suggest why RAW is so
poor on Linux (or want to contest the results?!)

Thanks
- Bill.

At 01:29 09/11/01 -0800, you wrote:
If you're using a volume manager (veritias, or disk
suite), then raw is pretty much just as easy as file
systems.

You could always do this incrementally - for example,
high io stuff (typically redo, temp, possibly
rollback) on raw, and all the rest of file systems
etc.

hth
connor

  --- Vasu Ramasamy [EMAIL PROTECTED] wrote: 
Hello Gurus,
  I am trying to install Oracle Server in the
  environment as given
  below. I am in the processes of laying out Physical
  Database layout. I
  would like to know the pros and cons of going with
  Raw partition.
 
   The environment :
 
Solaris 2.6
Oracle 8.1.7
Size of database - 60GB
No. of tables -  3000 (approx.)
Max size of few tables  -  3 GB to 5 GB.
 
Thanks for your help.
 
 
  --
  Please see the official ORACLE-L FAQ:
  http://www.orafaq.com
  --
  Author: Vasu Ramasamy
INET: [EMAIL PROTECTED]
 
  Fat City Network Services-- (858) 538-5051  FAX:
  (858) 538-5051
  San Diego, California-- Public Internet
  access / Mailing Lists
 

  To REMOVE yourself from this mailing list, send an
  E-Mail message
  to: [EMAIL PROTECTED] (note EXACT spelling of
  'ListGuru') and in
  the message BODY, include a line containing: UNSUB
  ORACLE-L
  (or the name of mailing list you want to be removed
  from).  You may
  also send the HELP command for other information
  (like subscribing).

=
Connor McDonald
http://www.oracledba.co.uk (mirrored at
http://www.oradba.freeserve.co.uk)

Some days you're the pigeon, some days you're the statue

__
Do You Yahoo!?
Everything you'll ever need on one web page from News and Sport to Email
and Music Charts
http://uk.my.yahoo.com
--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: =?iso-8859-1?q?Connor=20McDonald?=
   INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

--
Intasys Billing Technologies Ltd.   www.intasysbilling.com
74 Commercial Street, Commercial Quay, Leith, Edinburgh EH6 6LX
tel (0)131 625 8200 fax (0)131 625 8201 email [EMAIL PROTECTED]

--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: Bill Buchan
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: frequent commit, example ??? HELP

2001-11-18 Thread Steve Adams

Hi Andrea,

Don't do it! Adding commits makes the code more complex, much less efficient and risks 
violating transactional
integrity. See http://www.ixora.com.au/newsletter/2001_09.htm#commits for a detailed 
explanation of the problems.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.christianity.net.au/   -  For all


-Original Message-
Sent: Friday, 16 November 2001 6:00
To: Multiple recipients of list ORACLE-L


Hi all,

Thank you all those for responding to the frequent
commit question.  So members suggested using count,
and loop.  May I have real example.  (OK, I'm bad at
pl/sql).  Site table has 2 million rows, how to so a
commit, let's say 5000 rows.  Site_id is unique in
site table.  How does the counter fit in the following
update sql?

update site a set a.site_code =
   (select c.area_code
   from site_location b,
   area c where a.site_id = b.site_id and
c.area_id = b.area_id);

I put a counter is a sample code, and update runs 10
times! then commit, then runs another 10 times! then
commit   I must miss something.  Please give me as
mush detail as you can.  Thank you so much!



Andrea

__
Do You Yahoo!?
Find the one for you at Yahoo! Personals
http://personals.yahoo.com
--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: Andrea Oracle
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
San Diego, California-- Public Internet access / Mailing Lists

To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: RE: Raw partition Vs File System

2001-11-20 Thread Steve Adams

Hi Bill,

No luck contacting Bert. My guess is that he did not have a very big SGA, so there was 
plenty of his 2G of RAM available
for filesystem caching. For example, if Oracle had 128M for the shared pool and 128M 
for its buffer cache (as at the end
of his previous article in the series), that leaves about 1.7G for filesystem caching. 
So file system based tests would
get the benefit of 1.7G of cache, whereas raw tests would only get the benefit of 128M 
of cache. To construct a fair
test, it would be necessary to give Oracle 1.7G of db_block_buffers. In the article 
Bert says that he doubled
db_block_buffers, but unless going from about 600M to about 1.2G, then it was not a 
level playing field. Unfortunately,
he does not give those numbers.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.christianity.net.au/   -  For all


-Original Message-
Sent: Tuesday, 20 November 2001 21:07
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]


Hi Steve,

Did you manage to contact Bert?  Would you be willing to let us know what
you think was wrong with the test anyway?

Many thanks
- Bill.



Hi All,

Does anyone have an email address for Bert? I looked for his email address
when I first read that article a week ago,
but did not find one. I think I know what was wrong with his test, but it
is hard to be sure because he left out a lot
of the details.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/  -  For DBAs
@   http://www.christianity.net.au/   -  For all


-Original Message-
Sent: Friday, 9 November 2001 21:20
To: Multiple recipients of list ORACLE-L



Did anyone read Bert Scalzo's article in Pipeline Newsletter this month
(http://www.revealnet.com/newsletter-v2/linux2.html)?  He was benchmarking
various filesystems under Linux (EXT2, EXT3, Reiser, IBM JFS and RAW).  I
was suprised (and so was he) to see worst performance on RAW devices.  I
presume this is a Linux-specific issue: can anyone suggest why RAW is so
poor on Linux (or want to contest the results?!)

Thanks
- Bill.

At 01:29 09/11/01 -0800, you wrote:
 If you're using a volume manager (veritias, or disk
 suite), then raw is pretty much just as easy as file
 systems.
 
 You could always do this incrementally - for example,
 high io stuff (typically redo, temp, possibly
 rollback) on raw, and all the rest of file systems
 etc.
 
 hth
 connor
 
   --- Vasu Ramasamy [EMAIL PROTECTED] wrote: 
 Hello Gurus,
   I am trying to install Oracle Server in the
   environment as given
   below. I am in the processes of laying out Physical
   Database layout. I
   would like to know the pros and cons of going with
   Raw partition.
  
The environment :
  
 Solaris 2.6
 Oracle 8.1.7
 Size of database - 60GB
 No. of tables -  3000 (approx.)
 Max size of few tables  -  3 GB to 5 GB.
  
 Thanks for your help.
  
  
   --
   Please see the official ORACLE-L FAQ:
   http://www.orafaq.com
   --
   Author: Vasu Ramasamy
 INET: [EMAIL PROTECTED]
  
   Fat City Network Services-- (858) 538-5051  FAX:
   (858) 538-5051
   San Diego, California-- Public Internet
   access / Mailing Lists
  
 
   To REMOVE yourself from this mailing list, send an
   E-Mail message
   to: [EMAIL PROTECTED] (note EXACT spelling of
   'ListGuru') and in
   the message BODY, include a line containing: UNSUB
   ORACLE-L
   (or the name of mailing list you want to be removed
   from).  You may
   also send the HELP command for other information
   (like subscribing).
 
 =
 Connor McDonald
 http://www.oracledba.co.uk (mirrored at
 http://www.oradba.freeserve.co.uk)
 
 Some days you're the pigeon, some days you're the statue
 
 __
 Do You Yahoo!?
 Everything you'll ever need on one web page from News and Sport to Email
 and Music Charts
 http://uk.my.yahoo.com
 --
 Please see the official ORACLE-L FAQ: http://www.orafaq.com
 --
 Author: =?iso-8859-1?q?Connor=20McDonald?=
INET: [EMAIL PROTECTED]
 
 Fat City Network Services-- (858) 538-5051  FAX: (858) 538-5051
 San Diego, California-- Public Internet access / Mailing Lists
 
 To REMOVE yourself from this mailing list, send an E-Mail message
 to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
 the message BODY, include a line containing: UNSUB ORACLE-L
 (or the name of mailing list you want to be removed from).  You may
 also send the HELP command for other information (like subscribing).

--
Intasys Billing Technologies Ltd.   www.intasysbilling.com
74 Commercial Street, Commercial Quay, Leith, Edinburgh EH6 6LX
tel (0)131 625 8200 fax (0)131 625 8201 email [EMAIL PROTECTED]

--
Please see the official ORACLE-L FAQ: http://www.orafaq.com

RE: Virtual Circuit Status

2003-08-28 Thread Steve Adams
Hi Erik,

MTS uses a common queue for incoming requests (calls) to shared servers, and
other queues for responses going back via a dispatcher. These queues and
their clients constitute the virtual circuit. When a process is ready to
take a request or response from its queue, but finds that there is nothing
there, then it waits for 'virtual circuit status' to change.

So, if you're using MTS and you're not spending a lot of time in this wait
event, then that indicates that your requests and responses are being
delayed by queue time (which incidentally is not yet picked up by StatsPack,
although it is in the V$ views, nor is it visible in the trace files because
the waiting session does not have a corresponding process that is waiting).

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/ - For DBAs
@   http://www.christianity.net.au/  - For all 

-Original Message-
Williams
Sent: Thursday, 28 August 2003 4:49 AM
To: Multiple recipients of list ORACLE-L


Has anyone run into excessive waits on this event? After running my
statspack through oraperf.com, I see that I am waiting ~80% of response time
on this event. I have read on metalink that this is NOT an idle event, and
on asktom.oracle.com that it IS an idle event. We have MTS configured, but
all the clients are set to use dedicated server. Should I try reduce this
event by tuning MTS or is it truely an idle event?

Thanks
Erik
 




-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



RE: Tuning help required

2003-09-24 Thread Steve Adams
Hi New DBA,

Further to what Stephane has said below, the following two stats in your
initial post are interesting ...

consistent gets   559985
table fetch continued row 212027

That suggests that there is a fair amount of row chaining or migration in
one of the tables.
If it's migration, rather than chaining, you'll get a ~37% reduction in
logical reads if you fix it. The following script can often be used to
distinguish between chaining and migration. It counts the number of rows for
which the first column is not able to be returned from the first row piece.
Although it is possible for that to be the case with row chaining, it's more
likely a symptom of migration.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/ - For DBAs
@   http://www.christianity.net.au/  - For all 


accept OwnerName prompt Owner Name: 
accept TableName prompt Table Name: 
prompt

set termout off
delete from
  chained_rows
where
  owner_name = 'OwnerName' and
  table_name = 'TableName'
/
@utlchain
column column_name new_value ColumnName
select
  column_name
from
  dba_tab_columns
where
  owner = 'OwnerName' and
  table_name = 'TableName' and
  rownum = 1
/
set termout on
prompt Analyzing table. Please wait ...
analyze table OwnerName . TableName list chained rows into chained_rows
/
select
  count(*) continued_rows
from
  chained_rows
where
  owner_name = 'OwnerName' and
  table_name = 'TableName'
/
prompt Checking continued rows for migration ...
set termout off
column start_value new_value StartValue
select
  m.value start_value
from
  sys.v_$mystat  m,
  sys.v_$statname  n
where
  n.name = 'table fetch continued row' and
  n.statistic# = m.statistic#
/
select /*+ ordered */
  sum(vsize(t.ColumnName))
from
  chained_rows  c,
  TableNamet
where
  c.owner_name = 'OwnerName' and
  c.table_name = 'TableName' and
  t.rowid = c.head_rowid
/
set termout on
select
  m.value - StartValue migrated_rows
from
  sys.v_$mystat  m,
  sys.v_$statname  n
where
  n.name = 'table fetch continued row' and
  n.statistic# = m.statistic#
/

-Original Message-
Stephane Faroult
Sent: Wednesday, 24 September 2003 6:50 PM
To: Multiple recipients of list ORACLE-L


Before checking stats, execution plans and the like take a look at your
query. I presume that it is generated, otherwise you would probably say that
a date belongs to a month by using a BETWEEN the first and the thirty first
rather than listing all the 31 days, would you ? Now perhaps the generator
could generate a BETWEEN if you are always interested by consecutive days?
Note that the GEO table is totally useless in the FROM clause. You return no
data from it, and it is not needed to join together two tables you return
data from. If you need it to check some data consistency, it should be in a
subquery (IN or EXISTS, depending on the volumes of data to process), but
best of all the problem should have been tackled at the root with
referential integrity constraints. Even if you may have (always those b***y
generators) it should be better located in a subquery - by the way, it might
help you dispose of the UNIQUE (calling DISTINCT UNIQUE doesn't make it
better :-)).

The condition of CUR_SYS_NO should be applied to the column from MEPAI,
which you will encounter first, rather than the column from CUR, since they
are equal.
 Now you have to decide which of MEPAI or PRODUCTS should be the table you
search first. It depends on the selectivity of your data. Be certain that
your table and index statistics are up-to-date. If you still feel that
Oracle processes it badly, try playing on the optimizer goal
(FIRST_ROWS/ALL_ROWS) and if you get a result which satisfies you add it as
a hint.

SF

- --- Original Message --- -
From: New DBA [EMAIL PROTECTED]
To: Multiple recipients of list ORACLE-L
[EMAIL PROTECTED]
Sent: Tue, 23 Sep 2003 23:39:44


Hi All,

I need help in tuning the following query. It takes
around 6-7 minutes to run. I hope that someone will
be able to go through the details and give me a few
pointers.

I have gathered a few statistics, but don't know
where to go from here. 

Please view the mail in a fixed size font e.g.
courier to preserve the formatting. If the lines
wrap over copying and pasting in a text editor
might help, though I'm not sure.

I apologize for the long message in advance.

Following is the query:

SELECT  UNIQUE 
 MEPAI.MPAI_NAV_MOD ,
 MEPAI.MPAI_NAV_MODS,
 MEPAI.MPAI_SYS_NO,
 MEPAI.MPAI_PAI_SYS_NO,
 MEPAI.MPAI_AS_OF_DATE,
 PRODUCTS.ISS_INSTR_ID PRODUCT_INSTR_ID,
 CUR.CUR_CURRENCY_NAME,
 CUR.CUR_CURRENCY_CODE,
 CUR.CUR_SYS_NO
FROM 
 EPR_CURRENCIESCUR,
 EPR_GEOGRAPHIES   GEO,
 EPR_PRODUCTS  PRODUCTS,
 MOD_EPR_PRICING_ASSET_INFOMEPAI
WHERE   MEPAI.MPAI_ISS_SYS_NO   =
PRODUCTS.ISS_SYS_NO
AND MEPAI.MPAI_GEO_SYS_NO   = GEO.GEO_SYS_NO
AND MEPAI.MPAI_CUR_SYS_NO   = CUR.CUR_SYS_NO

RE: SQL AREA and LIBARARY CACHE size?

2003-09-25 Thread Steve Adams
Hi Manoj,

Although the stats are confused, the SQL area is in fact a subset of the
library cache. Cursors are cached in the library cache as namespace 0.

You can exercise limited control over the memory usage by marking objects
for keeping with DBMS_SHARED_POOL.KEEP. Otherwise, the retention of chunks
and thus the relative size of these and other shared pool areas depends
entirely how recently objects have been used, because they all share the
same LRU mechanisms (although there is an additional subordinate LRU
mechanism for the dictionary cache).

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/ - For DBAs
@   http://www.christianity.net.au/  - For all 

-Original Message-
ManojKr Jha
Sent: Thursday, 25 September 2003 6:35 PM
To: Multiple recipients of list ORACLE-L



How the ORACLE distribute and mange the size of variouse component in
shared_pool?
There should be some criteria on which it disribute its toatl available
memory to these component.

Steve Adams/Jonathan, do you have any about these?

Also are there any way to control the number and type  of chunks in
different buckets.
If these can be manage I hope that lots of seriouse problem related to
shared pool fragmentation and other issues can be easilly avoided?


With Regards,
Manoj Kumar Jha


---

A transcendentalist engaged in auspicious activities does not meet with
destruction either in this world or in the spiritual world; one who does
good,
is never overcome by evil.

---


 

bhabani s pradhan

[EMAIL PROTECTED]To: Multiple recipients
of list ORACLE-L [EMAIL PROTECTED]   
fmail.com cc:

Sent by:   Subject: Re: SQL AREA
and LIBARARY CACHE size?
[EMAIL PROTECTED]

om

 

 

09/25/03 01:04 PM

Please respond to

ORACLE-L

 

 





You cannot control the sizes of sql area and library cache
individually

Regards


On Thu, 25 Sep 2003 ManojKr Jha wrote :



Hi,

Any body have any idea about how to control the size of library
cache and
sql area in shared_pool?

With Regards,
Manoj Kumar Jha






A transcendentalist engaged in auspicious activities does not
meet with
destruction either in this world or in the spiritual world; one
who does
good,
is never overcome by evil.





DISCLAIMER: The information contained in this message is intended
only and
solely for the addressed individual or entity indicated in this
message and
for the exclusive use of the said addressed individual or entity
indicated
in this message (or responsible for delivery of the message to
such person)
and may contain legally privileged and confidential information
belonging
to Tata Consultancy Services. It must not be printed, read,
copied,
disclosed, forwarded, distributed or used (in whatsoever manner)
by any
person other than the addressee. Unauthorized use, disclosure or
copying is
strictly prohibited and may constitute unlawful act and can
possibly
attract legal action, civil and/or criminal. The contents of this
message
need not necessarily reflect or endorse the views of Tata
Consultancy
Services on any subject matter. Any action taken or omitted to be
taken
based on this message is entirely at your risk and neither the
originator
of this message nor Tata Consultancy Services takes any
responsibility or
liability towards the same. Opinions, conclusions and any other
information
contained in this message that do not relate to the official
business of
Tata Consultancy Services shall be understood as neither given
nor endorsed
by Tata Consultancy Services or any affiliate of Tata Consultancy
Services.
If you have received this message in error, you should destroy
this message
and may please notify the sender by e-mail. Thank you.

--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: ManojKr Jha
   INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051
http://www.fatcity.com
San Diego, California-- Mailing list and web hosting
services
-
To REMOVE yourself from this mailing list, send an E-Mail
message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and
in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You
may
also send the HELP command for other information (like

RE: SQL AREA and LIBARARY CACHE size?

2003-09-25 Thread Steve Adams
Hi Tanel,

There was a note in the bug database back in 7.1 days that suggested that it
was hard coded based on the chunk type, and so that's what I wrote in my
book.

However, I fear that that might have been wrong. At least it is in recent
versions. It is not hard to set up a test in which you can see chunks moving
from the transient to recurrent list. My best guess at the moment is that
when new recreatable chunks are first unpinned, they go onto the transient
list, and then when they have been reused, they go back onto the recurrent
list.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/ - For DBAs
@   http://www.christianity.net.au/  - For all 

-Original Message-
Tanel Poder
Sent: Thursday, 25 September 2003 9:45 PM
To: Multiple recipients of list ORACLE-L


As I understand SQL area is a subset of library cache which is a subset of
shared pool.

Taking advantage the opportunity that Steve is here, I'd like to ask how
does Oracle distinguish between recurrent and transient chunks? Is this
hardcoded, that certain types of chunks go to transient end of LRU list and
others go to rcr end or is this based on some kind of touch count as well,
like in buffer cache LRU list?

Tanel.

- Original Message - 
To: Multiple recipients of list ORACLE-L [EMAIL PROTECTED]
Sent: Thursday, September 25, 2003 2:04 PM



 Hi Steve,

 Sorry for it, but I want to correct one thing that is ,
 it is Libarray cache which is subset of SQL area which intern subset of
 shared pool.


 With Regards,
 Manoj Kumar Jha

 --
--

 A transcendentalist engaged in auspicious activities does not meet with
 destruction either in this world or in the spiritual world; one who does
 good,
 is never overcome by evil.
 --
--



 Steve Adams
 [EMAIL PROTECTED]To: Multiple recipients of
list ORACLE-L [EMAIL PROTECTED]
 ra.com.au  cc:
 Sent by:Subject: RE: SQL AREA
and LIBARARY CACHE size?
 [EMAIL PROTECTED]
 y.com


 09/25/03 03:24
 PM
 Please respond
 to ORACLE-L






 Hi Manoj,

 Although the stats are confused, the SQL area is in fact a subset of the
 library cache. Cursors are cached in the library cache as namespace 0.

 You can exercise limited control over the memory usage by marking objects
 for keeping with DBMS_SHARED_POOL.KEEP. Otherwise, the retention of chunks
 and thus the relative size of these and other shared pool areas depends
 entirely how recently objects have been used, because they all share the
 same LRU mechanisms (although there is an additional subordinate LRU
 mechanism for the dictionary cache).

 @   Regards,
 @   Steve Adams
 @   http://www.ixora.com.au/ - For DBAs
 @   http://www.christianity.net.au/  - For all

 -Original Message-
 ManojKr Jha
 Sent: Thursday, 25 September 2003 6:35 PM
 To: Multiple recipients of list ORACLE-L



 How the ORACLE distribute and mange the size of variouse component in
 shared_pool?
 There should be some criteria on which it disribute its toatl available
 memory to these component.

 Steve Adams/Jonathan, do you have any about these?

 Also are there any way to control the number and type  of chunks in
 different buckets.
 If these can be manage I hope that lots of seriouse problem related to
 shared pool fragmentation and other issues can be easilly avoided?


 With Regards,
 Manoj Kumar Jha

 --
--

 ---

 A transcendentalist engaged in auspicious activities does not meet with
 destruction either in this world or in the spiritual world; one who does
 good,
 is never overcome by evil.
 --
--

 ---




 bhabani s pradhan

 [EMAIL PROTECTED]To: Multiple recipients
 of list ORACLE-L [EMAIL PROTECTED]
 fmail.com cc:

 Sent by:   Subject: Re: SQL AREA
 and LIBARARY CACHE size?
 [EMAIL PROTECTED]

 om





 09/25/03 01:04 PM

 Please respond to

 ORACLE-L









 You cannot control the sizes of sql area and library cache
 individually

 Regards
 

 On Thu, 25 Sep 2003 ManojKr Jha wrote :
 
 
 
 Hi,
 
 Any body have any idea about how to control the size of library
 cache and
 sql area in shared_pool?
 
 With Regards,
 Manoj Kumar Jha
[snip]


-- 
Please see

RE: x$ constructs and memory

2003-09-29 Thread Steve Adams
Hi Daniel and list,

There are two types of X$ row sources. X$ tables export in-memory data
structures that are inherently tabular, and X$ interfaces that call
functions to return data is non-tabular, or not memory resident.

For example, the array of structs in the SGA representing processes is
exported as the X$ table X$KSUPR. Not all of the struct members are
exported as columns, but all of the rows are exported. There is a freelist,
implemented as a header that points to the first free slot in the array, and
a member of each struct to point to the next free slot. The 'process
allocation' latch protects this freelist.

The most obvious example of an X$ interface to return non-tabular data is
X$KSMSP, which returns one row for each chunk of memory in the shared pool.
(There are similar X$ interfaces for other memory heaps). As you may know,
heaps are implemented as a heap descriptor and linked list of extents, and
within each extent there is a linked list of chunks. So what is done is that
when the X$ interface is queried these linked lists are navigated (under the
protection of the relevant latch if necessary) an a array is built in the
CGA (part of the PGA) from which rows are then returned by the row source.

An example of an X$ interface that returns data that is not memory
resident is X$KCCLE, which returns one row for each log file member entry in
the controlfile. In fact, all the X$KCC* interfaces read data directly from
the controlfile. Similarly, the X$KTFB* interfaces return LMT extent
information - from the bitmap blocks (for free extents) and from the segment
header and extent map blocks (for used extents).

Some X$ tables have become X$ interfaces in recent versions, for example
X$KTCXB and X$KSQRS. These correspond to the transactions and enqueue
resources arrays respectively. The reason is that they are no longer fixed
arrays. Instead they are segmented arrays that can be dynamically extended
by adding discontiguous chunks of shared pool memory to the array. The
freelists and latching for these arrays in unchanged however. All you will
notice is that the ADDR column of the X$ output now returns addresses which
map into your PGA rather than the SGA. In fact, that is in general a good
way to work out whether you are looking at an X$ table or an X$ interface.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/ - For DBAs
@   http://www.christianity.net.au/  - For all 

-Original Message-
Daniel Fink
Sent: Tuesday, 30 September 2003 1:10 AM
To: Multiple recipients of list ORACLE-L


I was sitting on a mountain here in Colorado, pondering Oracle
optimization and an interesting scenario crossed my feeble mind.
As I began to ponder this (I asked the resident marmot, but he
must be a SQL*Server expert...), I came up with several
questions.

Where in memory (sga or other) do the x$ constructs reside?
Some of them are 'populated' by reading file-based structures
(control file, datafile headers, undo segments). Does this
information reside in memory or is it loaded each time the x$
construct is accessed?
What happens when these x$constructs begin to consume large
amounts of memory? Is there an upper bound?

Daniel Fink


-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).


RE: x$ constructs and memory

2003-09-29 Thread Steve Adams
Hi Tanel,

Answers inline ...

 As you may know,
 heaps are implemented as a heap descriptor and linked list of extents,
 and within each extent there is a linked list of chunks.

Is there a linked list for *all* chunks in a heap as well, regardless of
their type, or is there only a list for each type of chunks, free and
recreatable ones?
Am I correct that permanent chunks don't have to be in any list because
they're never deallocated and they should stay in same place anyway?

There is an invariant chunk header that identifies the chunk class and
implements the linked list of all chunks in an extent. Then there is a class
specific header that in the case of permanent, free and recreatable chunks
has a pointer for another linked list. I'm not sure why the permanent linked
list is needed (other than to make heapdumps efficient). The free and
recreatable chunks obviously need theirs for the freelists and LRU lists.

 Some X$ tables have become X$ interfaces in recent versions, for
 example X$KTCXB and X$KSQRS. [snip] All you will notice is that the
 ADDR column of the X$ output now returns addresses which map into
 your PGA rather than the SGA. In fact, that is in general a good way
 to work out whether you are looking at an X$ table or an X$ interface.

I've noticed that some tables such x$ktcxb and x$kturd return the same ADDR
value for all it's rows. I've always thought, that it means a subroutine or
function is returning the results instead of a direct read from array, as
you described. But x$ksqrs does return different ADDRs for each row
(9.2.0.4
on W2K). Am I on wrong tracks here?

The implementation of these row sources varies somewhat. Some of them, like
X$KSMSP, need to buffer their results in the CGA because the structure might
change before the next fetch; others like these ones you've mentioned do not
need to, but some of them do so anyway.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/ - For DBAs
@   http://www.christianity.net.au/  - For all 


-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).


RE: x$ constructs and memory

2003-09-30 Thread Steve Adams
Hi Steve,

The X$ interfaces do not use memory persistently, and the memory usage of
the X$ tables is fixed and necessary to an instance. Thus memory growth is
not possible.

Memory growth is possible for the segmented arrays, which some of the X$
interfaces expose. However, it is very unusual, because the defaults are
rather generous. If you query V$RESOURCE_LIMIT, you will normally see that
the MAX_UTILIZATION falls way short of the INITIAL_ALLOCATION. Even if there
is significant growth, it is unlikely to chew up more than a few M of shared
pool memory, because the structures involved are each very small. (You do
however need to worry about similar growth in the instance lock database in
a RAC environment).

To answer another question raised later in this thread ... the metadata for
X$ objects is present in the library cache during a query and may be cached
afterwards, but there is no corresponding metadata in the dictionary cache.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/ - For DBAs
@   http://www.christianity.net.au/  - For all 

-Original Message-
Steve
Sent: Wednesday, 1 October 2003 12:49 AM
To: Multiple recipients of list ORACLE-L


Hi Steve and welcome back,

Thanks for that detailed answer BUT... A practical question from the
original post remains: What happens when these x$constructs begin to
consume large amounts of memory? From your explanation I'm assuming
that, beyond monitoring the SGA and PGA, memory consumption of
individual X$ in-memory data structures is generally not something we
need to worry about. How can we determine how much memory they
actually consume? Are there any related tunable parameters of which we
should be aware?

Thanks,
Steve Orr



-Original Message-
Sent: Monday, September 29, 2003 5:25 PM
To: Multiple recipients of list ORACLE-L


Hi Daniel and list,

There are two types of X$ row sources. X$ tables export in-memory data
structures that are inherently tabular, and X$ interfaces that call
functions to return data is non-tabular, or not memory resident.

For example, the array of structs in the SGA representing processes is
exported as the X$ table X$KSUPR. Not all of the struct members are
exported as columns, but all of the rows are exported. There is a
freelist, implemented as a header that points to the first free slot in
the array, and a member of each struct to point to the next free slot.
The 'process allocation' latch protects this freelist.

The most obvious example of an X$ interface to return non-tabular data
is X$KSMSP, which returns one row for each chunk of memory in the shared
pool. (There are similar X$ interfaces for other memory heaps). As you
may know, heaps are implemented as a heap descriptor and linked list of
extents, and within each extent there is a linked list of chunks. So
what is done is that when the X$ interface is queried these linked lists
are navigated (under the protection of the relevant latch if necessary)
an a array is built in the CGA (part of the PGA) from which rows are
then returned by the row source.

An example of an X$ interface that returns data that is not memory
resident is X$KCCLE, which returns one row for each log file member
entry in the controlfile. In fact, all the X$KCC* interfaces read data
directly from the controlfile. Similarly, the X$KTFB* interfaces return
LMT extent information - from the bitmap blocks (for free extents) and
from the segment header and extent map blocks (for used extents).

Some X$ tables have become X$ interfaces in recent versions, for
example X$KTCXB and X$KSQRS. These correspond to the transactions and
enqueue resources arrays respectively. The reason is that they are no
longer fixed arrays. Instead they are segmented arrays that can be
dynamically extended by adding discontiguous chunks of shared pool
memory to the array. The freelists and latching for these arrays in
unchanged however. All you will notice is that the ADDR column of the X$
output now returns addresses which map into your PGA rather than the
SGA. In fact, that is in general a good way to work out whether you are
looking at an X$ table or an X$ interface.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/ - For DBAs
@   http://www.christianity.net.au/  - For all 

-Original Message-
Daniel Fink
Sent: Tuesday, 30 September 2003 1:10 AM
To: Multiple recipients of list ORACLE-L


I was sitting on a mountain here in Colorado, pondering Oracle
optimization and an interesting scenario crossed my feeble mind. As I
began to ponder this (I asked the resident marmot, but he must be a
SQL*Server expert...), I came up with several questions.

Where in memory (sga or other) do the x$ constructs reside? Some of them
are 'populated' by reading file-based structures (control file, datafile
headers, undo segments). Does this information reside in memory or is it
loaded each time the x$ construct is accessed? What happens when these
x$constructs begin to consume large

RE: what is in the UGA?

2003-11-11 Thread Steve Adams
Hi Ryan,

The words session specific have to do with the difference between a
process and a session. Many Oracle environments run with just one user
session per process, but in general there can be multiple user sessions
being serviced by a single process.

The UGA holds persistent data structures that are specific to a particular
session (even though other sessions may be connected through the same
process). By contrast, the PGA contains persistent data structures that are
specific to the process (not general to the instance) but must be visible to
all sessions connected via that process, and the CGA holds transient data
structures that are only required for the duration of a single call.

The UGA consists of a small fixed area containing a few atomic variables,
small data structures and pointers. The rest of the UGA is a heap. Most of
the UGA heap is for private SQL and PL/SQL areas. So yes, package variables
and bind variable are there (although the bind meta-data is in the SGA) but
sort areas, row source buffers, and runtime state data are also major space
consumers.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/ - For DBAs
@   http://www.christianity.net.au/  - For all 

-Original Message-
[EMAIL PROTECTED]
Sent: Tuesday, 11 November 2003 12:14 AM
To: Multiple recipients of list ORACLE-L


I cant find any specifics in the docs. I must be missing something. All I
see is 'session specific information'?

Does this mean package variables? SQLPLUS bind variables? What does this
mean? 


-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).


RE: what is in the CGA?

2003-11-11 Thread Steve Adams
Hi Pawan,

CGA = Call Global Area. It contains data structures that can be freed at the
end of the (parse, execute, fetch, ...) call. For example, if a sort while
executing a select statement exceeds the sort_area_retained_size any
additional sort memory required (up to the sort_area_size) will be allocated
in the CGA. Once the execute call has finished the entire CGA is freed, and
the extra sort memory with it.

Physically, CGAs are subheaps of the PGA. The extents are identified as
call heap in PGA heap dumps. There can be more than one CGA present in a
PGA heap dump if a recursive call was under way when the PGA heap dump was
taken.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/ - For DBAs
@   http://www.christianity.net.au/  - For all 

-Original Message-
Satav, Pawan
Sent: Tuesday, 11 November 2003 8:55 PM
To: Multiple recipients of list ORACLE-L


Good info Steve.

But what I want to ask is what is a CGA  ?


Regards
Pawan


-Original Message-
Sent: Tuesday, November 11, 2003 1:24 PM
To: Multiple recipients of list ORACLE-L


Hi Ryan,

The words session specific have to do with the difference between a 
process and a session. Many Oracle environments run with just one user
session per process, but in general there can be multiple user sessions
being serviced by a single process.

The UGA holds persistent data structures that are specific to a particular
session (even though other sessions may be connected through the same
process). By contrast, the PGA contains persistent data structures that are
specific to the process (not general to the instance) but must be visible to
all sessions connected via that process, and the CGA holds transient data
structures that are only required for the duration of a single call.

The UGA consists of a small fixed area containing a few atomic variables,
small data structures and pointers. The rest of the UGA is a heap. Most of
the UGA heap is for private SQL and PL/SQL areas. So yes, package variables
and bind variable are there (although the bind meta-data is in the SGA) but
sort areas, row source buffers, and runtime state data are also major space
consumers.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/ - For DBAs
@   http://www.christianity.net.au/  - For all 

-Original Message-
[EMAIL PROTECTED]
Sent: Tuesday, 11 November 2003 12:14 AM
To: Multiple recipients of list ORACLE-L


I cant find any specifics in the docs. I must be missing something. All I
see is 'session specific information'?

Does this mean package variables? SQLPLUS bind variables? What does this
mean? 


-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).


RE: Suggestions Needed: Latch free - library cache

2004-01-09 Thread Steve Adams
Hi All,

Someone has alerted me to this thread, and asked for a comment.
On a quick scan, and it seems to me that you've mostly got it right.

The problem is that when an SQL statement that refers to its base
objects via public synonyms is shared by multiple distinct Oracle users,
then name resolution and permission checking need to repeated for each
distinct user, and because the results of these actions are cached on
the shared cursor, they increase the cost of subsequent such operations.
That is, public synonyms cause extended latch retention as well as
additional latching.

For example, if 500 distinct users share 200 SQL statements that refer
300 times to 100 base tables via public synonyms. Then there will also
be 100 * 500 non-existent objects in both the dictionary cache and the
library cache; 200 * 500 cursor authorization structures; and 300 * 500
negative dependency records in the library cache. These last two things
are cached as segmented arrays that are scanned linearly - thus the
increased latch retention.

If your application doesn't have hundreds of distinct Oracle users,
or if you can afford the extra latch gets and longer latch retention,
then you will probably not notice all of this unless you start doing
library cache dumps.

That is, the use of public synonyms is a major scalability threat, but
does not normally cause performance problems.

@   Regards,
@   Steve Adams
@   http://www.ixora.com.au/ - For DBAs
@   http://www.christianity.net.au/  - For all 


-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Steve Adams
  INET: [EMAIL PROTECTED]

Fat City Network Services-- 858-538-5051 http://www.fatcity.com
San Diego, California-- Mailing list and web hosting services
-
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).


<    1   2