Reading Blocks – Nomenclature

Looking at the time statistics the database collects , I often get confused between the different terms and what exactly they mean and measure. For my convinience (and hopefully yours), here are the terms used to describe block reads and what they mean.

LIO = Logical IO. Logical IO is any attempt by the database to read a block of data. This can be done from the buffer cache or from the disk.

PIO = Physical IO. Those are reads that cannot be satisfied from the buffer cache. Note that we still don’t know whether the disk is actually involved, operating systems and storage have cache too.

DB Block Get = current mode get. Attempt to read the most current image of a block. DML operations need to get the current image (no point in updating historical images).

Consistent Gets = consistent reads (sometimes abbreviated as CR). Attempt to read a consistent image of the block. Consistent means the version that was current when the statement began. This may require applying undo information and to roll back changes that occured after the statement began.

If you have RAC, you’ll also see “gc current block” and “gc CR” events. These are the same as consistent reads and current gets, except that they were satisfied from the buffer cache of a remote node.


One Comment on “Reading Blocks – Nomenclature”

  1. Ram says:

    Thanks for the tip. You summed it up succinctly. There are some very elaborate readings on this topic which could confuse people who are beginners to this concept.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s