sql >> Database >  >> RDS >> Database

Tabel vastzetten in de Flash-cache

Objecten worden automatisch in de cache opgeslagen in de Exadata Smart Flash Cache (ESFC), maar de DBA kan afdwingen dat een object in de flashcache wordt bewaard. De CELL_FLASH_CACHE opslagclausule-attribuut regelt de prioriteitstelling van blokken binnen de ESFC en ook de behandeling van Smart Scan-blokken. Er zijn drie mogelijke instellingen

  • STANDAARD:Het automatische cachemechanisme is actief. Dit is de standaardwaarde.
  • GEEN:dit object nooit in de cache plaatsen.
  • KEEP:Het object moet een voorkeursstatus krijgen.

Merk op dat deze aanduiding ook het standaardgedrag van Smart Scans verandert, waardoor ze zowel van de cache als van de schijf kunnen lezen.

Hier is een voorbeeld van het wijzigen van de opslagclausule CELL_FLASH_CACHE met de opdracht "ALTER TABLE":

Een tafel vastzetten in ESFC:


SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE KEEP);

Table altered.

Dit opslagkenmerk kan ook worden opgegeven wanneer de tabel wordt gemaakt:


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.

De opslagclausule CELL_FLASH_CACHE instellen om BEHOUD , zal smart scan proberen de gegevens rechtstreeks uit het geheugen te lezen. Deze situatie kan worden geanalyseerd door de "cell flash cache read hits . aan te vinken “:


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

Scanbewerkingen op een grote tafel worden niet beïnvloed door de Flash Cache tenzij de tabel is gekoppeld aan de CELL_FLASH_CACHE KEEP-clausule zoals weergegeven in figuur 1.

                                        Afbeelding 1:Resultaat van CELL_FLASH_CACHE-opslaginstelling op ESFC>

Een tafel in ESFC losmaken:


SQL> ALTER TABLE llamadas STORAGE (CELL_FLASH_CACHE DEFAULT);

Kan de huidige instellingen voor de CELL_FLASH_CACHE-clausule onderzoeken door DBA_SEGMENTS, DBA_TABLES of DBA_INDEXES op te vragen:


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. Sql Server - verbinding maken met Windows-verificatie

  2. Hoe een record te krijgen met maximale waarde in MySQL

  3. N+1 redundantie en serverconsolidatie

  4. ORA-12514 TNS:luisteraar weet momenteel niet welke service is aangevraagd in connect-descriptor