oracle internal :VIEW: X$KCBLDRHIST - Direct Read HISTory

WebIV:View NOTE:159900.1    
             



Article-ID:         <Note:159900.1>

Alias:              VIEW:X$KCBLDRHIST

Circulation:        PUBLISHED (INTERNAL) ***Oracle Confidential - Internal Use Only***

Folder:             server.Internals.General

Topic:              ** X$ Table Definitions

Title:              VIEW: X$KCBLDRHIST - Direct Read HISTory - (9.0)

Document-Type:      REFERENCE

Impact:             LOW

Skill-Level:        NOVICE

Server-Version:     09.00

Updated-Date:       05-OCT-2001 05:27:02

References:         

Shared-Refs:        

Authors:            MEPRESTO.US

Attachments:        NONE

Content-Type:       TEXT/PLAIN

Products:           5/RDBMS (9.0);  



View:   X$KCBLDRHIST

         [K]ernel [C]ache [B]uffer [L]oad management

           [d]irect [r]ead [hist]ory





 Column          Type               Description

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

 ADDR            RAW(4|8)           address of this row/entry in the array or SGA

 INDX            NUMBER             index number of this row in the fixed table array

 INST_ID         NUMBER             oracle instance number

 DRTHRUPT        NUMBER             throughput of direct reads

 TOTLSLTS        NUMBER             Total number of slots as seen by CKPT



 INCREASE        NUMBER             Increase bit

      KCBLHV_STAY    0        Do not increase number of slots

      KCBLHV_INCR    1        Increase number of slots

      KCBLHV_SYNC    2        Syncronize mode



 REALSLTS        NUMBER             Total number of slots as seen by the PQ slaves



Notes from source:



   One copy of the history vector is allocated per instance.

   Each entry corresponds to a different time snapshot.

   Every 3 seconds, the next entry is updated.

   Each entry contains the following information:

   - Throughput of direct reads during the last 3 seconds expressed in

     blocks per second.

   - Total number of slots (1). The background process every 3 seconds adds

     up the number of slots in all active sessions. This is possible

     since every session maintains statistics about its number of slots.

   - Total number of slots (2). Each slave running adaptive direct reads

     adds regularly its number of slots to the history vector.

     The reason for having two different variables representing the

     same logical entity is because either of those two variables

     alone is not accurate enough. For example, if just before the end

     of the 3 second interval, a new slave started then (1) will not be

     accurate. On the other hand, if a slave just missed the chance to

     add its number of slots in the last entry, then (2) is wrong.

     So before any decision is taken, we make sure that (1) is identical

     to (2).

   - Increase bit. This bit indicates the decision taken by the background

     process for the next 3 seconds interval based on the previous history

     entries. Check the note in kcblclc for more information about the

     increase bit.



KCBLHSZ  1000        Size of History Vector in number of rows



 KCBLHSLTRT  25       Minimum percentage increase in number of slots

Minimum percentage increase in throughput expressed in percentage

increase in the number of slots. For example, if we have a 40% increase

in the number of slots, then the minimum increase in

throughput needs to be 40% * 25% = 10%. So this number

correlates the increase in number of slots with the throughput.

The minimum increase in throughput is used by the background process

as will be seen later. The latter compares the current increase in

throughput with the minimum increase to determine whether to increase

the number of slots in the system or not.



 KCBLHTHPTRT 25

Maximum IO Wait to Cumulative time ratio where slave is CPU bound

expressed in percentage. If that IO wait to cumulative time ratio

is greater than this number, then the slave is considered IO bound

and would increase number of slots if background process indicates

to do so. Otherwise, the slave is considered CPU bound and

consequently ignores all decisions taken by the background process.



 KCBLHCPUBDRT  10

NOTE ON PERSISTENT AND NONPERSISTENT STATE FOR ADAPTIVE READS:

The state for adaptive direct reads is composed of a persistent and

nonpersistent state. Persistent state means that kcbl state is

maintained across uses of a load descriptor. In other words, the

state is maintained across kcbldrini calls. The reason for that is

that sometimes kcbldrini is called multiple times for the same table

or index... We don't want to restart the adaptation from scratch

everytime kcbldrini is called. Instead we would like to maintain some

state so that in case kcbldrini is called again on that same object,

no redundant adaptation is needed.



          


你可能感兴趣的:(history)