sql >> Base de Datos >  >> RDS >> Database

Fijar tabla en Flash Cache

Los objetos se almacenan automáticamente en caché en Exadata Smart Flash Cache (ESFC); sin embargo, el DBA puede exigir que un objeto se mantenga en caché flash. El CELL_FLASH_CACHE El atributo de la cláusula de almacenamiento controla la priorización de los bloques dentro del ESFC y también el tratamiento de los bloques de Smart Scan. Hay tres configuraciones posibles

  • DEFAULT:el mecanismo de almacenamiento en caché automático está en vigor. Este es el valor predeterminado.
  • NINGUNO:nunca almacenar en caché este objeto.
  • MANTENER:el objeto debe recibir un estado preferencial.

Tenga en cuenta que esta designación también cambia el comportamiento predeterminado de Smart Scans, permitiéndoles leer tanto de la memoria caché como del disco.

Aquí hay un ejemplo de cómo cambiar la cláusula de almacenamiento CELL_FLASH_CACHE usando el comando "ALTER TABLE":

Para anclar una tabla en ESFC:


SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE KEEP);

Table altered.

Este atributo de almacenamiento también se puede especificar cuando se crea la tabla:


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.

Configuración de la cláusula de almacenamiento CELL_FLASH_CACHE para MANTENER , el escaneo inteligente intentará leer los datos directamente desde la memoria. Esta situación se puede analizar comprobando los “golpes de lectura de caché flash de celda “:


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

Las operaciones de escaneo en una tabla grande no se ven afectadas por Flash Cache a menos que la tabla esté asociada con la cláusula CELL_FLASH_CACHE KEEP como se muestra en la figura 1.

                                       Figura 1:Resultado de la configuración de almacenamiento CELL_FLASH_CACHE en ESFC

Para desanclar una tabla en ESFC:


SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE DEFAULT);

Puede examinar la configuración actual de la cláusula CELL_FLASH_CACHE consultando 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