Les objets sont automatiquement mis en cache dans Exadata Smart Flash Cache (ESFC), mais le DBA peut imposer qu'un objet soit conservé dans le cache flash. Le CELL_FLASH_CACHE L'attribut de clause de stockage contrôle la hiérarchisation des blocs au sein de l'ESFC ainsi que le traitement des blocs Smart Scan. Il y a trois paramètres possibles
- DEFAULT :Le mécanisme de mise en cache automatique est activé. Il s'agit de la valeur par défaut.
- AUCUN :ne jamais mettre cet objet en cache.
- CONSERVER :l'objet doit recevoir un statut préférentiel.
Notez que cette désignation modifie également le comportement par défaut des Smart Scans, leur permettant de lire à la fois le cache et le disque.
Voici un exemple de modification de la clause de stockage CELL_FLASH_CACHE à l'aide de la commande "ALTER TABLE" :
Pour épingler un tableau dans ESFC :
SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE KEEP); Table altered.
Cet attribut de stockage peut également être spécifié lors de la création de la table :
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.
Définition de la clause de stockage CELL_FLASH_CACHE à GARDER , Smart Scan tentera de lire les données directement à partir de la mémoire. Cette situation peut être analysée en vérifiant les « cell flash cache read 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
Les opérations d'analyse sur une grande table ne sont pas affectées par le Flash Cache sauf si la table est associée à la clause CELL_FLASH_CACHE KEEP comme illustré à la figure 1.
Figure 1 :Résultat du paramètre de stockage CELL_FLASH_CACHE sur ESFC
Pour désépingler une table dans ESFC :
SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE DEFAULT);
Peut examiner les paramètres actuels de la clause CELL_FLASH_CACHE en interrogeant 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