sql >> Databasteknik >  >> RDS >> Database

Fästa tabell i Flash-cachen

Objekt cachelagras automatiskt i Exadata Smart Flash Cache (ESFC), men DBA kan tvinga fram att ett objekt hålls i flash-cache. CELL_FLASH_CACHE lagringsklausulattribut styr prioritering av block inom ESFC och även behandlingen av Smart Scan-block. Det finns tre möjliga inställningar

  • STANDARD:Den automatiska cachningsmekanismen är aktiv. Detta är standardvärdet.
  • INGEN:Cache aldrig detta objekt.
  • BEHÅLL:Objektet bör ges preferensstatus.

Observera att den här beteckningen också ändrar standardbeteendet för Smart Scans så att de kan läsa från både cacheminnet och disken.

Här är ett exempel på hur du ändrar lagringssatsen CELL_FLASH_CACHE med kommandot "ALTER TABLE":

Så här fäster du en tabell i ESFC:


SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE KEEP);

Table altered.

Detta lagringsattribut kan också anges när tabellen skapas:


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.

Ställer in lagringssatsen CELL_FLASH_CACHE att BEHÅLL , kommer smart scan att försöka läsa data direkt från minnet. Denna situation kan analyseras genom att kontrollera "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

Skanningsoperationer på ett stort bord påverkas inte av Flash-cachen såvida inte tabellen är associerad med CELL_FLASH_CACHE KEEP-satsen som visas i figur 1.

                                                                                                      

Så här lossar du en tabell i ESFC:


SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE DEFAULT);

Kan undersöka de aktuella inställningarna för CELL_FLASH_CACHE-satsen genom att fråga DBA_SEGMENTS, DBA_TABLES eller 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. REGEXP_REPLACE() Funktion i Oracle

  2. mysql-konfigurationen stannar vid start av servern

  3. Varför fungerar inte min t-sql left join?

  4. Hur man får alla fel av alla SSIS-paket i en lösning