Database
 sql >> Base de Dados >  >> RDS >> Database

Fixação de tabela no Flash Cache


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