Dear List,

Here's a problem that a fellow DBA is experiencing, and
for which I have not been much help.  :(

This is the situation:

A session is started and the following query is issued:


   select log_record, raw_log_data_id
        from raw_log_data
        where status = 'U' and log_filename = :1


Here's the table:

11:56:43 system@mlogprod SQL>  desc mlog_mstr.raw_log_data
 Name                          Null?    Type
 ----------------------------- -------- --------------------
 RAW_LOG_DATA_ID               NOT NULL NUMBER(38)
 LOG_FILENAME                  NOT NULL VARCHAR2(200)
 PROCESS_TMSTMP                         DATE
 PARTNER_ACCT_ID                        NUMBER
 PROVIDER_ACCT_ID                       NUMBER
 RECORD_START_TIME                      DATE
 RECORD_END_TIME                        DATE
 LOG_RECORD                             CLOB
 MEDSVRTYP_CD                           VARCHAR2(10)
 STATUS                        NOT NULL CHAR(2)
 STATUS_CMT                             VARCHAR2(2000)

11:56:46 system@mlogprod SQL>

Here's the index being used by the query:

TABLE         INDEXNAME             COLUMNNAME                           POS
------------- --------------------- ----------------------------------- ----
RAW_LOG_DATA  RAW_LOG_DATA_IX01     LOG_FILENAME                           1
                                    STATUS                                 2

( This is a local partitioned index. )

This query began this morning at 00:59:59

At the time the query started, there were 65 partitions in the index.

At 01:00:00 an operation began to split the overflow partition on
the index, and then do an ALTER INDEX REBUILD partition on the
new partition created by the split.

Here's where the fun starts. The partition split/rebuild was successful.

But the query that began 1 second earlier begins to behave very strangely.

This query normally runs in < 3 seconds.  But under these circumstances
it begins to read the same database block over and over from the empty
partition that was just added.

Querying v$session_wait reveals the file and block:

USERNAME   EVENT                             SID P1TEXT               P1 P2TEXT        
       P2    TIME    WAIT STATE
---------- ------------------------------ ------ ---------- ------------ ---------- 
------------ ------- ------- --------------------
MLOG_ADMIN db file sequential read            16 file#                35 block#        
   253450       0     423 WAITING


Querying dba_extents reveals the object and partition:

select segment_name, segment_type, partition_name
from dba_extents
where file_id = 35  and 253450 between block_id and
block_id + blocks - 1
/

SEGMENT_NAME         SEGMENT_TYPE       PARTITION_NAME
-------------------- ------------------ ------------------------------
RAW_LOG_DATA_IX01    INDEX PARTITION    P66


We have seen the wait on the read take well over an hour.  After it
completes, the next wait will be for the same file and block.

The stats that appear by querying the latch sleeps etc are misleading IMO,
and merely a symptom of some other problem.

By doing a truss on the shadow process, it can be seen that a call to
pread64() is being made millions of times in succession with the same
parameters. ( see below )

This is a reproducable problem, as we have had several occurrences.

OWS is so far baffled.

If anyone has had a similar experience, and/or has some thoughts
on the matter, it would be appreciated.

( See below for DB version, IO stats, latch sleeps, truss output, etc )

Thanks

Jared

--------------------------------------


The session of interest is SID 16 for MLOG_ADMIN


*****  The Database ***************
***********************************

11:34:58 system@mlogprod SQL> @showdb

PRODUCT                        VERSION              STATUS
------------------------------ -------------------- --------------------
NLSRTL                         3.4.0.0.0            Production
Oracle8i Enterprise Edition    8.1.6.1.0            Production
PL/SQL                         8.1.6.1.0            Production
TNS for Solaris:               8.1.6.0.0            Production

Data Base
------------------------------
MLOGPROD.ENRON.NET

STARTUP
--------------------
02/04/2001 15:17:03


*****  The Query  *****************
***********************************

11:16:05 system@mlogprod SQL> /

USERNAME      SORTS  PARSE CALLS   BUFFER GETS  ROWS_PROCESSED   EXECUTIONS  SQL
----------  -------  -----------  ------------  --------------  -----------  
----------------------------------------
MLOG_ADMIN        0       23,428    52,859,035         8862581       44,340  select 
log_record, raw_log_data_id from
                                                                             
raw_log_data where status = 'U' and log_
                                                                             filename 
= :1
1 row selected.

11:16:23 system@mlogprod SQL>


*****  Session Waits **************
***********************************

11:16:23 system@mlogprod SQL> @sesswait
                                                                                       
                    WAIT       IN
USERNAME    EVENT                              SID  P1TEXT                P1  P2TEXT   
             P2     TIME     WAIT  STATE
----------  ------------------------------  ------  ----------  ------------  
----------  ------------  -------  -------  --------------------
DBAKEVIN    SQL*Net message from client         21  driver id     1413697536  #bytes   
              1        0     2655  WAITING
                                                43  driver id     1413697536  #bytes   
              1        0     2907  WAITING
                                                72  driver id     1413697536  #bytes   
              1        0     2325  WAITING
                                                56  driver id     1413697536  #bytes   
              1        0        0  WAITING

FOGLIGHT    SQL*Net message from client         12  driver id     1413697536  #bytes   
              1        0       79  WAITING

MLOG_ADMIN  db file sequential read             16  file#                 35  block#   
         253450        0      579  WAITING

SYS         SQL*Net message from client          8  driver id     1650815232  #bytes   
              1        0     2547  WAITING

SYSTEM      SQL*Net message to client           10  driver id     1413697536  #bytes   
              1       -2        0  WAITED UNKNOWN TIME


8 rows selected.

11:17:10 system@mlogprod SQL>


*****  The IO  ********************
***********************************


File I/O report for Database: MLOGPROD
Start Time:  02/15/2001 10:36:55
End Time  :  02/15/2001 10:38:56
Seconds:        121

                                                                    RDS       WRT      
    IOS
                                                                    PER       PER      
    PER       R/W
DRIVE         NAME                       RDTOT       WRTOT          SEC       SEC      
    SEC     RATIO
------------  --------------------  ----------  ----------  -----------  --------  
-----------  --------
/or0001h      raw_log_data_m26.dbf           0          15          .00       .12      
    .12        .0
              raw_log_index_m04.dbf    1195163           0     9,877.38       .00     
9,877.38  ########

              raw_log_index_m05.dbf          0           6          .00       .05      
    .05        .0

              raw_log_index_s02.dbf          0           6          .00       .05      
    .05        .0

              rbs01.dbf                      3          43          .02       .36      
    .38        .1
              rbs02.dbf                      2           6          .02       .05      
    .07        .3
              system01.dbf                  15           1          .12       .01      
    .13      15.0
              tools01.dbf                    0           6          .00       .05      
    .05        .0
************                        ----------  ----------  -----------  --------  
-----------
sum                                    1195183          83     9,877.55       .69     
9,878.23

                                    ----------  ----------  -----------  --------  
-----------
sum                                    1195183          83     9,877.55       .69     
9,878.23

8 rows selected.

10:38:57 system@mlogprod SQL>


*****  truss output ***************
***********************************

23898:  pread64(407, "0602\0\0\bC3DE\nC5E2 X93".., 8192, 0x7BC14000) = 8192
23898:  pread64(407, "0602\0\0\bC3DE\nC5E2 X93".., 8192, 0x7BC14000) = 8192
23898:  pread64(407, "0602\0\0\bC3DE\nC5E2 X93".., 8192, 0x7BC14000) = 8192
23898:  pread64(407, "0602\0\0\bC3DE\nC5E2 X93".., 8192, 0x7BC14000) = 8192
23898:  pread64(407, "0602\0\0\bC3DE\nC5E2 X93".., 8192, 0x7BC14000) = 8192
23898:  pread64(407, "0602\0\0\bC3DE\nC5E2 X93".., 8192, 0x7BC14000) = 8192
23898:  pread64(407, "0602\0\0\bC3DE\nC5E2 X93".., 8192, 0x7BC14000) = 8192
23898:  pread64(407, "0602\0\0\bC3DE\nC5E2 X93".., 8192, 0x7BC14000) = 8192
...

*****  latch sleeps ***************
***********************************

11:17:10 system@mlogprod SQL> @$J/../apt/latch_sleeps

LATCH TYPE                                  IMPACT  SLEEP RATE  WAITS HOLDING  LEVEL
-------------------------------------  -----------  ----------  -------------  -----
cache buffers chains                       5931249       0.04%        2093541      1
library cache                               289813       0.01%       11859691      5
undo global data                             10141       0.00%          35422      5
row cache objects                             8862       0.00%         909384      4
cache buffers lru chain                       8347       0.00%         309822      3
redo allocation                               7011       0.00%         700420      6
session idle bit                              6749       0.00%              0      1
enqueue hash chains                           3623       0.00%          36621      4
session allocation                            3329       0.01%          63736      5
redo writing                                  3093       0.01%         221882      5
transaction allocation                        1807       0.00%          60228      8
enqueues                                      1766       0.00%          39404      5
...

11:19:14 system@mlogprod SQL>



-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: 
  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).

Reply via email to