Objek secara otomatis di-cache di Exadata Smart Flash Cache (ESFC), namun DBA dapat memastikan bahwa objek disimpan dalam cache flash. CELL_FLASH_CACHE atribut klausa penyimpanan mengontrol prioritas blok dalam ESFC dan juga perlakuan terhadap blok Smart Scan. Ada tiga kemungkinan pengaturan
- DEFAULT:Mekanisme caching otomatis sedang berlaku. Ini adalah nilai default.
- TIDAK ADA:Jangan pernah menyimpan objek ini dalam cache.
- JAGA:Objek harus diberi status preferensi.
Perhatikan bahwa penunjukan ini juga mengubah perilaku default Smart Scans yang memungkinkan mereka membaca dari cache dan disk.
Berikut adalah contoh mengubah klausa penyimpanan CELL_FLASH_CACHE menggunakan perintah “ALTER TABLE”:
Untuk menyematkan tabel di ESFC:
SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE KEEP); Table altered.
Atribut penyimpanan ini juga dapat ditentukan saat tabel dibuat:
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.
Menyetel klausa penyimpanan CELL_FLASH_CACHE untuk MENJAGA , smart scan akan mencoba membaca data langsung dari memori. Situasi ini dapat dianalisis dengan memeriksa “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
Operasi pemindaian pada tabel besar tidak terpengaruh oleh Flash Cache kecuali tabel dikaitkan dengan klausa KEEP CELL_FLASH_CACHE seperti yang ditunjukkan pada gambar 1.
Gambar 1:Hasil setelan penyimpanan CELL_FLASH_CACHE
Untuk melepas pin tabel di ESFC:
SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE DEFAULT);
Dapat memeriksa setelan saat ini untuk klausa CELL_FLASH_CACHE dengan menanyakan DBA_SEGMENTS, DBA_TABLES, atau 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