Обектите се кешират автоматично в Exadata Smart Flash Cache (ESFC), но DBA може да наложи даден обект да се съхранява във флаш кеш. CELL_FLASH_CACHE Атрибутът на клаузата за съхранение контролира приоритизирането на блоковете в рамките на ESFC, а също и третирането на блоковете за интелигентно сканиране. Има три възможни настройки
- ПО ПОДРАЗБИРАНЕ:Механизмът за автоматично кеширане е в сила. Това е стойността по подразбиране.
- НЯМА:Никога не кеширайте този обект.
- ЗАПАЗВАНЕ:Обектът трябва да получи преференциален статут.
Имайте предвид, че това обозначение също променя поведението по подразбиране на Smart Scans, позволявайки им да четат както от кеша, така и от диска.
Ето пример за промяна на клаузата за съхранение CELL_FLASH_CACHE с помощта на командата „ALTER TABLE“:
За да закачите таблица в ESFC:
SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE KEEP); Table altered.
Този атрибут за съхранение може да бъде посочен и при създаване на таблицата:
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.
Задаване на клаузата за съхранение CELL_FLASH_CACHE за ЗАПАЗВАНЕ , интелигентното сканиране ще се опита да прочете данните директно от паметта. Тази ситуация може да се анализира, като се провери „посещения за четене на флаш кеша на клетки “:
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
Операциите по сканиране на голяма таблица не се влияят от Flash Cache освен ако таблицата не е свързана с клаузата CELL_FLASH_CACHE KEEP, както е показано на фигура 1.
1
За да откачите таблица в ESFC:
SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE DEFAULT);
Може да провери текущите настройки за клаузата CELL_FLASH_CACHE чрез запитване за DBA_SEGMENTS, DBA_TABLES или 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