Os objetos são armazenados em cache automaticamente no Exadata Smart Flash Cache (ESFC), no entanto, o DBA pode impor que um objeto seja mantido no cache flash. O CELL_FLASH_CACHE O atributo de cláusula de armazenamento controla a priorização de blocos dentro do ESFC e também o tratamento de blocos Smart Scan. Existem três configurações possíveis
- PADRÃO:O mecanismo de cache automático está em vigor. Este é o valor padrão.
- NONE:nunca armazene este objeto em cache.
- MANTER:o objeto deve receber status preferencial.
Observe que essa designação também altera o comportamento padrão dos Smart Scans, permitindo que eles leiam do cache e do disco.
Aqui está um exemplo de alteração da cláusula de armazenamento CELL_FLASH_CACHE usando o comando “ALTER TABLE”:
Para fixar uma tabela no ESFC:
SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE KEEP); Table altered.
Este atributo de armazenamento também pode ser especificado quando a tabela é criada:
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.
Configurando a cláusula de armazenamento CELL_FLASH_CACHE para MANTER , a varredura inteligente tentará ler os dados diretamente da memória. Esta situação pode ser analisada verificando os “acertos de leitura do cache de flash de célula “:
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
As operações de varredura em uma tabela grande não são afetadas pelo Flash Cache a menos que a tabela esteja associada à cláusula CELL_FLASH_CACHE KEEP, conforme mostrado na figura 1.
Figura 1:Resultado da configuração de armazenamento CELL_FLASH_CACHE no ESFC
Para desafixar uma tabela no ESFC:
SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE DEFAULT);
Pode examinar as configurações atuais da cláusula CELL_FLASH_CACHE consultando DBA_SEGMENTS, DBA_TABLES ou 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