[Oracle] – Cache oracle

Quando si effettuano i test in Oracle e’ ovviamente utile replicare, o per lo meno cercare, l’ambiente di produzione il piu’ similmente possibile specialmente per quel che riguarda la lettura su disco visto che sono le operazioni che impiegano piu’ tempo, cercando di mettersi magari nelle condizioni peggiori e cioe’ che i dati necessari stanno tutti su disco e nessun blocco e’ in cache. Il comando (utile per Oracle 9i) svuota la cache di sessione, "costringendo" oracle a leggere i dati necessari da disco.

SQL>alter SESSION SET events 'immediate trace name flush_cache';

Per Oracle 10g invece e’ necessario usare il seguente comando:

SQL>alter SYSTEM flush buffer_cache;

Per vedere la situazione della memoria in cache ecco una query che puo’ tornarci utile:

SELECT COUNT(*), State FROM (
   SELECT DECODE(state,
             0,'Free',
             1, DECODE(lrba_seq,
                 0, 'Available',
                    'Being Used'),
             3, 'Being Used',
             4, 'Read',
                 state) State
    FROM x$bh )
  GROUP BY state;

Grazie per la lettura!

Luca

bookmark bookmark bookmark bookmark bookmark bookmark

Lascia un commento

Nome: (Required)

eMail: (Required)

Website:

Comment:

 

Qualcosa su di me...

Favaretto Luca, classe '82. Essenzialmente mi occupo di programmazione Oracle come consulente presso la divisione ICT di Enel, ma per passione mi diletto con Photoshop, Joomla, Flash e quant'altro abbia a che fare con la grafica. Spero troverete interessanti e soprattutto utili gli articoli in questo sito. Buona Permanenza!