archive_lag_target

Dell EMC recommends setting the archive_lag_target parameter to 900 to force a log switch every fifteen minutes.

Dell EMC recommends a 512-byte block size for redo log files on ScaleIO.

Dell EMC recommends a minimum of five redo log groups per thread for any database. Enterprise grade storage arrays largely negate the benefits of multiple redo log group members.

Determining a starting value for optimizer_index_cost_adj

http://www.dba-oracle.com/oracle_tips_cost_adj.htm

We can see that the optimal setting for optimizer_index_cost_adj is partially a function of the I/O waits for sequential reads vs. scattered reads:

select
   a.average_wait                                  c1,
   b.average_wait                                  c2,
   a.total_waits /(a.total_waits + b.total_waits)*100  c3,
   b.total_waits /(a.total_waits + b.total_waits)*100  c4,
   (b.average_wait / a.average_wait)*100           c5
from
   v$system_event  a,
   v$system_event  b
where
   a.event = 'db file scattered read'
and
   b.event = 'db file sequential read'; 

col c1 heading 'Average Waits for|Full Scan Read I/O' format 9999.999
col c2 heading 'Average Waits for|Index Read I/O' format 9999.999
col c3 heading 'Percent of| I/O Waits|for scattered|Full Scans' format 9.99
col c4 heading 'Percent of| I/O Waits|for sequential|Index Scans' format 9.99
col c5 heading 'Starting|Value|for|optimizer|index|cost|adj' format 999
 
select
   sum(a.time_waited_micro)/sum(a.total_waits)/1000000 c1,
   sum(b.time_waited_micro)/sum(b.total_waits)/1000000 c2,
   (
      sum(a.total_waits) /
      sum(a.total_waits + b.total_waits)
   ) * 100 c3,
   (
      sum(b.total_waits) /
      sum(a.total_waits + b.total_waits)
   ) * 100 c4,
  (
      sum(b.time_waited_micro) /
      sum(b.total_waits)) /
      (sum(a.time_waited_micro)/sum(a.total_waits)
   ) * 100 c5
from
   dba_hist_system_event a,
   dba_hist_system_event b
where
   a.snap_id = b.snap_id
and
   a.event_name = 'db file scattered read'
and
   b.event_name = 'db file sequential read';

optimizer_index_caching

Here is a script that will display the total number of data bocks in the data buffer and a starting value for optimizer_index_caching:

select
count(case when o.object_type= 'INDEX' then 1 end) index_blocks,
count(case when o.object_type= 'INDEX PARTITION' then 1 end)
idx_part_blk,
count(case when o.object_type= 'TABLE' then 1 end) table_blocks,
count(case when o.object_type= 'TABLE PARTITION' then 1 end)
tbl_part_blcks,
count(case when o.object_type != 'TABLE' and o.object_type != 'INDEX'
and
o.object_type != 'TABLE PARTITION' and o.object_type
!= 'INDEX PARTITION' then 1 end) others_blocks
from
   dba_objects o,
   v$bh bh
where
   o.data_object_id = bh.objd;

References

http://www.dba-oracle.com/art_so_optimizer_index_caching.htm

https://richardfoote.wordpress.com/2009/09/01/optimizer_index_caching-parameter/

http://manishnashikkar.blogspot.com/2014/07/about-optimizerindexcaching.html

désert/Oracle/Optimization (last edited 2018-03-29 09:46:22 by localhost)