Database
 sql >> Database >  >> RDS >> Database

Bloccare la tabella nella cache di Flash

Gli oggetti vengono automaticamente memorizzati nella cache di Exadata Smart Flash Cache (ESFC), tuttavia il DBA può imporre che un oggetto venga mantenuto nella cache flash. La CELL_FLASH_CACHE L'attributo della clausola di archiviazione controlla la definizione delle priorità dei blocchi all'interno dell'ESFC e anche il trattamento dei blocchi Smart Scan. Ci sono tre possibili impostazioni

  • DEFAULT:il meccanismo di memorizzazione nella cache è attivo. Questo è il valore predefinito.
  • NESSUNO:non memorizzare mai questo oggetto nella cache.
  • KEEP:all'oggetto dovrebbe essere assegnato lo stato preferenziale.

Tieni presente che questa designazione modifica anche il comportamento predefinito di Smart Scan, consentendo loro di leggere sia dalla cache che dal disco.

Ecco un esempio di modifica della clausola di archiviazione CELL_FLASH_CACHE utilizzando il comando "ALTER TABLE":

Per bloccare una tabella in ESFC:


SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE KEEP);

Table altered.

Questo attributo di archiviazione può essere specificato anche al momento della creazione della tabella:


SQL> create table region
2 (
3 name varchar2(30 byte) not null enable,
4 num number not null enable,
5 buddy_region number default null,
6 change_state char(1 byte) default null,
7 weights varchar2(500 byte) default null,
8 primary key (name)
9 using index pctfree 10 initrans 2 maxtrans 255 compute statistics
10 tablespace tbs_idx enable
11 )
12 (cell_flash_cache keep)
13 tablespace tbs_data;

Table created.

Impostazione della clausola di archiviazione CELL_FLASH_CACHE MANTENERE , Smart Scan tenterà di leggere i dati direttamente dalla memoria. Questa situazione può essere analizzata controllando "Cache flash cella di lettura hits “:


SQL> select * from llamadas;

SQL> select name, value from v$sysstat where name in ('physical read total IO requests','cell flash cache read hits');

NAME    VALUE 
------ ------------ 
physical read total IO requests 1274902412
cell flash cache read hits       984578330

Le operazioni di scansione su un tavolo di grandi dimensioni non sono influenzate dalla Cache Flash a meno che la tabella non sia associata alla clausola CELL_FLASH_CACHE KEEP come mostrato in figura 1.

                                             Figura 1:Risultato dell'impostazione di archiviazione CELL_FLASH_CACHE su ESFC

Per sbloccare una tabella in ESFC:


SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE DEFAULT);

Può esaminare le impostazioni correnti per la clausola CELL_FLASH_CACHE interrogando DBA_SEGMENTS, DBA_TABLES o DBA_INDEXES:


SQL> SELECT segment_name,segment_type,cell_flash_cache FROM dba_segments where segment_name = 'LLAMADAS';

SEGMENT_NAME SEGMENT_TYPE CELL_FLASH_CACHE
------------- ------------- ---------------
LLAMADAS TABLE KEEP