Više o pronalasku u cache memoriji

Ako je omogućeno spremanje u cache memoriju, provjerit će se svaki upit kako bi se odredilo je li on prikladan za pronalazak u cache memoriji.

Pronalazak u cache memoriji znači da je Oracle Analytics Cloud mogao upotrijebiti cache memoriju za odgovaranje na upit i nije uopće upotrijebio bazu podataka. Oracle Analytics Cloud može upotrijebiti cache memoriju upita za odgovaranje na upite na istoj ili višoj razini sabiranja.

Pronalazak u cache memoriji ovisi o različitim čimbenicima. Ti su čimbenici opisani u tablici u nastavku.

Čimbenik ili pravilo Opis

Podskup stupaca na popisu SELECT mora biti usklađen

Svi stupci na popisu SELECT za novi upit moraju postojati u upiti u cache memoriji kako bi se on mogao kvalificirati kao pronalazak u cache memoriji ili se moraju moći izračunati na temelju stupaca u upitu.

Ovo pravilo opisuje minimalni uvjet pronalaska u cache memoriji, no ispunjavanje ovog pravila ne jamči pronalazak u cache memoriji. Mogu se primjenjivati i druga pravila navedena u ovoj tablici.

Stupci na popisu SELECT mogu se sastojati od izraza u stupcima upita u cache memoriji

Oracle Analytics Cloud može izračunati izraze u rezultatima u cache memoriji za odgovaranje na novi upit, no stupci se moraju nalaziti u rezultatu u cache memoriji. Na primjer, u upitu:

SELECT product, month, averageprice FROM sales WHERE year = 2000

pronalazak u cache memoriji za upit:

SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000

jer se averageprice može izračunati na temelju vrijednosti dollars i unitsales (averageprice = dollars/unitsales).

Uvjet WHERE mora semantički biti isti ili logički podskup

Kako bi se upit kvalificirao kao pronalazak u cache memoriji, ograničenja uvjeta WHERE moraju biti u skladu s rezultatima u cache memoriji ili podskupom rezultata u cache memoriji.

Uvjet WHERE koji je logički podskup upita u cache memoriji kvalificira se kao pronalazak u cache memoriji ako podskup ispunjava jedan od sljedećih kriterija:

  • Podskup vrijednosti popisa IN. Upiti koji traže manje elemenata upita u cache memoriji za popis IN kvalificiraju se kao pronalazak u cache memoriji. Na primjer, sljedeći upit:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('EAST', 'WEST')

    kvalificira se kao pronalazak za sljedeći upit u cache memoriji:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('NORTH', 'SOUTH', 'EAST', 'WEST')
  • On sadrži manje OR ograničenja od rezultata u cache memoriji (no ona su identična).

  • On sadrži logički podskup literalne usporedbe. Na primjer, sljedeći predikat:

    WHERE revenue < 1000

    kvalificira se kao pronalazak u cache memoriji za usporedivi upit s predikatom:

    WHERE revenue < 5000
  • Nema uvjeta WHERE. Ako u cache memoriji ne postoji uvjet WHERE, upiti koji ispunjavaju sva ostala pravila za pronalazak u cache memoriji kvalificirat će se kao pronalazak u cache memoriji bez obzira na njihov uvjet WHERE.

Nadalje, stupci koji se upotrebljavaju u uvjetu WHERE moraju se nalaziti na popisu za projekciju. Na primjer, sljedeći upit:

SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')

Ne daje pronalazak u cache memoriji za sistemski upit na prethodnom popisu jer REGION nije na popisu za projekciju.

Upiti koji se odnose samo na dimenziju moraju se točno podudarati

Ako se upit odnosi samo na dimenziju, tj. u njega nije uključena nijedna činjenica ni mjera, uspješan pristup cache memoriji dat će samo točna podudarnost stupaca projekcije iz upita u cache memoriji. Ovo ponašanje sprječava netočne rezultate ako za dimenzijsku tablicu postoji više logičkih izvora.

Upiti s posebnim funkcijama moraju se točno podudarati

Ostali upiti koji sadrže posebne funkcije, primjerice funkcije vremenske serije (AGO, TODATE i PERIODROLLING), funkcije ograničenja i pomaka (OFFSET i FETCH), odnosne funkcije (ISANCESTOR, ISLEAF, ISROOT i ISSIBLING), vanjske funkcije sabiranja i općenito metriku za filtriranje moraju se točno podudarati sa stupcima projekcije u upitu u cache memoriji. U tim slučajevima filtar se također mora točno podudarati. Za metriku filtriranja, ako se metrika filtriranja može zapisati kao uvjet WHERE, može se iskoristiti cache memorija podskupa.

Mora se podudarati skup logičkih tablica

Kako bi se kvalificirali kao pronalazak u cache memoriji, svi dolazni upiti moraju imati isti skup logičkih tablica kao unos u cache memoriji. Tim pravilom izbjegava se lažni pronalazak u cache memoriji. Na primjer, SELECT * FROM product ne podudara se s SELECT * FROM product, sales.

Vrijednosti varijable sesije moraju se podudarati, uključujući sigurnosne varijable sesije

Ako logička SQL ili fizička SQL naredba navodi bilo koju varijablu sesije, vrijednosti varijable sesije moraju se podudarati. U suprotnom neće biti pronalaska u cache memoriji.

Nadalje, vrijednost varijabli sesije koje su povezane sa sigurnosti moraju se podudarati s vrijednostima sigurnosne varijable sigurnosne koje su definirane u semantičkom modelu, čak i ako sama logička SQL naredba ne navodi varijable sesije. Pogledajte Provjera točnih cache rezultata pri upotrebi zaštite baze podataka na razini retka.

Jednaki uvjeti spoja

Spojena logička tablica koja je dobivena za novi zahtjev za upit mora biti ista kao rezultati iz cache memorije (ili mora biti njihov podskup) kako bi se kvalificirala kao pronalazak u cache memoriji.

Atribut DISTINCT mora biti isti

Ako upit u cache memoriji eliminira duplicirane zapise s DISTINCT obradom (na primjer, SELECT DISTINCT...), zahtjevi za stupce u cache memoriji također mora uključivati DISTINCT obradu; zahtjev za isti upit bez DISTINCT obrade neće dati pronalazak u cache memoriji.

Upiti moraju sadržavati kompatibilne razine sabiranja

Upiti kojima se traži sabrana razina informacija mogu upotrebljavati rezultate u cache memoriji na nižoj razini sabiranja. Na primjer, sljedeći upit traži količinu prodanu na razini dobavljača, regije i grada:

SELECT supplier, region, city, qtysold
FROM suppliercity

Sljedeći upit traži prodanu količinu na razini grada:

SELECT city, qtysold
FROM suppliercity

Drugi rezultati upita pri pronalasku u cache memoriji za prvi upit.

Ograničeno dodatno sabiranje

Na primjer, ako je upit sa stupcem qtysold u cache memoriji, zahtjev za RANK(qtysold) neće dati pronalazak u cache memoriji. Nadalje, upit koji traži qtysold na razini države može ostvariti pronalazak u cache memoriji iz upita koji traži qtysold na razini države, regije.

Uvjet ORDER BY mora se sastojati od stupaca na popisu SELECT

Upiti s redoslijedom prema stupcima koji nisu na popisu SELECT neće dati pronalazak u cache memoriji.

Dijagnosticiranje ponašanja za pronalazak u cache memoriji

Kako biste bolje procijenili ponašanje za pronalazak u cache memoriji, varijablu sesije ENABLE_CACHE_DIAGNOSTICS postavite na 4, kao što je prikazano u sljedećem primjeru:

ENABLE_CACHE_DIAGNOSTICS=4