Obiekty są automatycznie buforowane w pamięci podręcznej Exadata Smart Flash Cache (ESFC), jednak administrator może wymusić przechowywanie obiektu w pamięci podręcznej flash. CELL_FLASH_CACHE Atrybut klauzuli przechowywania kontroluje priorytety bloków w ESFC, a także traktowanie bloków Smart Scan. Istnieją trzy możliwe ustawienia
- DOMYŚLNE:Działa mechanizm automatycznego buforowania. To jest wartość domyślna.
- BRAK:Nigdy nie buforuj tego obiektu.
- ZACHOWAJ:Obiekt powinien mieć status preferencyjny.
Zwróć uwagę, że to oznaczenie zmienia również domyślne zachowanie inteligentnych skanowań, umożliwiając im odczytywanie zarówno z pamięci podręcznej, jak iz dysku.
Oto przykład zmiany klauzuli przechowywania CELL_FLASH_CACHE za pomocą polecenia „ALTER TABLE”:
Aby przypiąć tabelę w ESFC:
SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE KEEP); Table altered.
Ten atrybut przechowywania można również określić podczas tworzenia tabeli:
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.
Ustawianie klauzuli przechowywania CELL_FLASH_CACHE ZACHOWAĆ , inteligentne skanowanie spróbuje odczytać dane bezpośrednio z pamięci. Sytuację tę można przeanalizować, sprawdzając „trafienia odczytu pamięci podręcznej pamięci flash komórki „:
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
Pamięć podręczna Flash nie ma wpływu na operacje skanowania na dużym stole chyba że tabela jest powiązana z klauzulą CELL_FLASH_CACHE KEEP, jak pokazano na rysunku 1.
Rysunek 1:Wynik ustawienia pamięci CELL_FLASH_CACHE w ESFC
Aby odpiąć tabelę w ESFC:
SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE DEFAULT);
Może sprawdzić bieżące ustawienia klauzuli CELL_FLASH_CACHE, wysyłając zapytanie do DBA_SEGMENTS, DBA_TABLES lub 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