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

Home -> Community -> Usenet -> c.d.o.misc -> ORACLE 7.3 FAQ's (a few of them)

ORACLE 7.3 FAQ's (a few of them)

From: SatarNag <satarnag_at_aol.com>
Date: 1997/08/22
Message-ID: <19970822010800.VAA08845@ladder01.news.aol.com>#1/1

Here's my contribution to this Newsgroup... Satar Naghshineh
SatarNag_at_aol.com

ORACLE WORLDWIDE SUPPORT FAQs (7.3 Tuning Manual)

Problem: Determining When to Pin Objects in Your Shared Pool Scenario
Pinning objects in the shared pool is a key to tuning this memory structure. Pinning objects in the shared pool reduce fragmentation and help prevent Oracle from encountering the ORA-04031 error. In addition to these problems, another indication that objects will benefit from being pinned in the shared pool is a high number of RELOADS listed in either the 'report.txt' output of UTLBSTAT/UTLESTAT or the RELOADS column in V$SQLAREA. The question of what objects need to be pinned in particular to your database enviroment, the application you are running, the size of your database, and the activity on your database. Depending upon the type of object, there may be various solutions.

Solution
* Find out which application is causing this error. Zero down on which
package/procedure is loaded and try to keep it in the shared pool by pinning it.
* Sometimes, the application may not give the errors. In which case, set
an event parameter in 'init.ora', as follows and generate a trace file.

        event = "4031 trace name errorstack level 10"
* The trace file contains a dump of state objects, when the error occurs.
In the trace file, look for 'load=X' a few lines below that 'name=[name of object]. This error occurs at the time this object is loaded, therefore pin the object in the shared pool, thereby keeping it.
* Query the X$KSMLRU fixed table. This table keeps track of the objects
and the corresponding number of objects flushed out of the shared pool based upon the Least Recently Used (LRU) algorithm.
* This is a fixed table and once queried, Oracle will automatically reset
the table, thus, you can only query the table once. Spool the output to a file so you can capture the output for analysis.
* Describe X$KSMLRU.

NAME          NULL?     TYPE
SSE                            RAW (4)
INDX                            NUMBER
KSMLRCOM                VARCHAR2 (20)
KSMLRSIZ                   NUMBER
KSMLRNUM                NUMBER

Note: The two important columns are: KSMLRNUM [stores the number of objects that were flushed to load the large object] and KSMLRSIZ [stores the size of the object that was loaded contiguous memory allocated].

Example
Issue this query to find all the objects that are larger than size 5k which you may want to pin.

SELECT * FROM x$ksmlru WHERE ksmlrsiz > 5000;

***END*** I hoped this info was helpful to you Satar Naghshineh Received on Fri Aug 22 1997 - 00:00:00 CDT

Original text of this message

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