Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

DBMS_Resource_Manager has a procedure called Calibrate_IO with a Physical Disks input parameter. The documentation says this value should be set to the...

Approximate number of physical disks in the database storage

With a logical drive striped across an unknown number of disks in a SAN disk group containing 30 drives, I'm not sure what this means. I ran the procedure for values of 1 and 30, yet the IOPS, MBPS and latency were nearly identical.

Is this number just for informational purposes or is it actually used? If the the later, then what should it be set to when there is not a one to one relationship between logical disks and physical disks?

Block to run procedure:

set serveroutput on;

   vDisks         Binary_Integer := 30;
   vMaxLatency    Binary_Integer := null;
   vMaxIOPS       Binary_Integer;
   vMaxMBPS       Binary_Integer;
   vActualLatency Binary_Integer;
   DBMS_RESOURCE_MANAGER.Calibrate_IO(Num_Physical_Disks => vDisks
      , Max_IOPS => vMaxIOPs, Max_MBPS => vMaxMBPS
      , Actual_Latency => vActualLatency);
   DBMS_OUTPUT.PUT_LINE('      Max IOPS:' || vMaxIOPS);
   DBMS_OUTPUT.PUT_LINE('      Max MBPS:' || vMaxMBPS);
   DBMS_OUTPUT.PUT_LINE('Actual Latency:' || vActualLatency);   

select * from dba_rsrc_io_calibrate;
share|improve this question
good question. I think it play a bigger role in ASM than in FS based databases. In ASM Oracle can 'see' the addition of 'disks'. (who really knows if it is a disk at all) – ik_zelf Mar 14 '11 at 19:47
up vote 4 down vote accepted

It really is to be the number of physical disks, in the old fashioned style, not using a SAN. The best article about this I found here Most others blogs/docs I found were more like copies from manuals than original contents that explains something new. When using this on a SAN, the cache is going to play a big role, as is the inner working of those beasts. For example, they write in a buffer and give an acknowledgement to the rdbms that the write is complete, even when the data did not even come close to the intended disk. When continuously other blocks are written, that cache could be choked and then we get a better view of the real io performance. Reading and updating blocks from a regular sized datafile won't be sufficient to reach that.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.