sql >> Databáze >  >> RDS >> Database

Připnutí tabulky do mezipaměti Flash

Objekty jsou automaticky ukládány do mezipaměti Exadata Smart Flash Cache (ESFC), avšak DBA může vynutit, aby byl objekt uchováván ve flash mezipaměti. CELL_FLASH_CACHE atribut storage clause řídí prioritizaci bloků v rámci ESFC a také zacházení s bloky Smart Scan. Existují tři možná nastavení

  • VÝCHOZÍ:Mechanismus automatického ukládání do mezipaměti je aktivní. Toto je výchozí hodnota.
  • ŽÁDNÉ:Tento objekt nikdy neukládat do mezipaměti.
  • PONECHAT:Objekt by měl mít přednostní status.

Všimněte si, že toto označení také mění výchozí chování Smart Scans, které jim umožňuje číst z mezipaměti i disku.

Zde je příklad změny klauzule úložiště CELL_FLASH_CACHE pomocí příkazu „ALTER TABLE“:

Chcete-li připnout stůl v ESFC:


SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE KEEP);

Table altered.

Tento atribut úložiště lze také zadat při vytváření tabulky:


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.

Nastavení klauzule úložiště CELL_FLASH_CACHE PONECHAT Smart Scan se pokusí načíst data přímo z paměti. Tuto situaci lze analyzovat zkontrolováním „zásahů čtení mezipaměti flash buňky “:


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

Operace skenování na velké tabulce nejsou ovlivněny mezipamětí Flash pokud není tabulka spojena s klauzulí CELL_FLASH_CACHE KEEP, jak je znázorněno na obrázku 1.

                                                                                                                         

Odepnutí tabulky v ESFC:


SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE DEFAULT);

Může prozkoumat aktuální nastavení klauzule CELL_FLASH_CACHE dotazem na DBA_SEGMENTS, DBA_TABLES nebo 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


  1. Co je databáze, proč databáze?

  2. dbms_output.put_line

  3. 2 způsoby, jak získat minuty z hodnoty data a času v databázi Oracle

  4. Jak vyřešit ORA-28000 účet je uzamčen