Oracle Analytics Cloud u cache memoriji za upite održava lokalnu cache memoriju sa skupovima rezultata upita.
Teme:
Cache memorija za upite omogućuje servisu Oracle Analytics Cloud da ispuni mnogo uzastopnih zahtjeva za upite bez pristupu pozadinskim izvorima podataka, što ubrzava izvršavanje upita. Unosi u cache memoriju za upite mogu postati zastarjeli ako se pozadinski izvori podataka ažuriraju.
Najbrži način obrade upita jest preskakanje obrade i upotreba unaprijed izračunatog odgovora.
Pri spremanju upita u cache memoriju Oracle Analytics Cloud u lokalnu cache memoriju sprema unaprijed izračunate rezultate upita. Ako drugi upit može upotrijebiti te rezultate, za taj će se upit eliminirati kompletna obrada baze podataka. To može uvelike poboljšati prosječno vrijeme odgovaranja na upit.
Uz bolju izvedbu, mogućnost odgovaranja na upit iz lokalne cache memorije troši manje mrežnih resursa i skraćuje vrijeme obrade na poslužitelju baze podataka. Troši se manje mrežnih resursa jer se privremeni rezultati ne vraćaju u Oracle Analytics Cloud. Ako se upit ne pokreće u bazi podataka, poslužitelj baze podataka može obavljati druge zadatke. Ako se za bazu podataka upotrebljava sustav naknadnog obračuna, pokretanje manjeg broja upita može i smanjiti troškove.
Još jedna prednost upotrebe cache memorije za odgovor na upit jest kraća obrada u servisu Oracle Analytics Cloud, osobito ako se rezultati upita dohvaćaju iz više baza podataka. Ovisno o upitu, na poslužitelju se može odvijati opsežna obrada spajanja i sortiranja. Ako je upit već izračunat, ta se obrada izbjegava, pa poslužiteljski resursi mogu obavljati druge zadatke.
Ukratko, spremanje upita u cache memoriju može znatno poboljšati izvedbu upita i smanjiti mrežni promet, obradu baze podataka i troškove obrade.
Spremanje upita u cache memoriju donosi mnogo prednosti, no također i određene troškove.
Potencijalno zastarijevanje rezultata u cache memoriji
Administrativni troškovi upravljanja cache memorijom
Uz upravljanje cache memorijom prednosti su obično veće od troškova.
Neki administrativni zadaci povezani su sa spremanjem u cache memoriju. Morate pravilno postaviti vrijeme postojanosti cache memorije za svaku fizičku tablicu te pritom znati koliko se često ažuriraju podaci u toj tablici.
Ako postoje odstupanja u učestalosti ažuriranja, morate pratiti kad dolazi do promjena i ručno očistiti cache kad je to potrebno.
Ako se unosi ne očiste iz cache memorije kad se promijene podaci u povezanim bazama podataka, upiti potencijalno mogu vratiti zastarjele podatke.
Morate procijeniti je li to prihvatljivo. Možda će biti prihvatljivo dopustiti da se u cache memoriji nalaze neki zastarjeli podaci. Morate odlučiti koja je razina zastarjelih podataka prihvatljiva, a zatim konfigurirati (i pratiti) skup pravila koja odražavaju te razine.
Pretpostavimo, na primjer, da aplikacija analizira korporacijske podatke velikog konglomerata i radite godišnje sažetka različitih sektora u poduzeću. Novi podaci neće uvelike utjecati na upite jer novi podaci utječu samo na sažetke za sljedeću godinu. U tom slučaju, s obzirom na negativne posljedice čišćenja cache memorije, može biti bolje ostaviti unose u cache memoriji
Pretpostavimo, međutim, da se baze podataka ažuriraju triput dnevno i da izvršavate upite za današnje aktivnosti. U tom slučaju morate češće očistiti cache memoriju ili razmisliti o mogućnosti da je uopće ne upotrijebite.
Drugi scenarij je da u redovitim intervalima ponovo ispočetka izradite skup podataka (na primjer, jednom tjedno). U tom slučaju možete očistiti cijelu cache memoriju u sklopu ponovne izrade skupa podataka i tako osigurati da u cache memoriji nikada ne bude zastarjelih podataka.
Kakva god bila vaša situacija, morate procijeniti što je prihvatljivo kad se radi o neaktualnim podacima koji će se vratiti korisnicima.
Ako je za određeni skup konekcija omogućena zajednička prijava, cache memorija može se podijeliti s više korisnika i ne mora se sistemski postaviti za svakog pojedinog korisnika.
Ako zajednička prijava nije omogućena i upotrebljava se pojedinačna korisnička prijava za bazu podataka, svaki korisnik mora generirati vlastiti unos u cache memoriju.
Cache memorija za upite automatski je omogućena u servisu Oracle Analytics Cloud. Spremanje upita u cache memoriju možete omogućiti ili onemogućiti na stranici Napredne postavke sustava.
Želite li upravljati promjenama u povezanim bazama podataka i nadzirati unose u cache memoriji, morate razviti strategiju za upravljanje cache memorijom.
Potreban vam je proces za poništavanje valjanosti unosa u cache memoriji kad se promijene podaci u povezanim tablicama koje čine unos u cache memoriji te proces za nadzor, identifikaciju i uklanjanje svih neželjenih unosa iz cache memorije.
Ovaj odjeljak sadrži sljedeće teme:
Odabir strategije za upravljanje cache memorijom ovisni o volatilnosti podataka u popratnim bazama podataka i predvidljivosti promjena koje uzrokuju tu volatilnost.
On ovisi i o broju i vrstama upita koji čine cache memoriju te upotrebi tih upita. U ovom odjeljku nalazi se pregled različitih pristupa upravljanju cache memorijom.
Spremanje u cache memoriju možete onemogućiti za cijeli sustav kako biste zaustavili sve nove unose u cache memoriju i kako biste spriječili da novi upiti upotrijebe postojeću cache memoriju. Onemogućavanje spremanja u cache memoriju omogućuje vam da ga kasnije omogućite bez gubitka unosa koji su spremljeni u cache memoriju.
Privremeno onemogućavanje spremanja u cache memoriju korisna je strategija u situacijama u kojima možda sumnjate da u cache memoriji postoje zastarjeli unosi, no želite provjeriti jesu li uistinu zastarjeli prije no što očistite te unose ili cijelu cache memoriju. Nakon što ustanovite da su podaci spremljeni u cache memoriju i dalje relevantni ili nakon sigurnog čišćenja problematičnih unosa možete na siguran način ponovo omogućiti cache memoriju. Ako je potrebno, prije ponovnog omogućavanja cache memorije očistite cijelu cache memoriju ili cache memoriju koja je povezana s određenim poslovnim modelom.
Za svaku fizičku tablicu možete postaviti atribut koji se može spremiti u cache memoriju, što vam omogućuje da definirate hoće li se upiti za tu tablicu dodati u cache memoriju radi odgovaranja na buduće upite.
Ako za tablicu omogućite spremanje u cache memoriju, u cache memoriju dodat će se upit koji obuhvaća tablicu. Sve se tablice prema zadanim postavkama mogu spremiti u cache memoriju, no neke tablice možda nisu dobri kandidati za uključivanje u cache memoriju ako niste postavili postavke postojanosti cache memorije. Pretpostavimo, na primjer, da imate tablicu u koju se spremaju zgusnutiji podaci koji se ažuriraju svake minute. Za tu tablicu možete definirati čišćenje unosa svakih 59 sekundi.
Postojanost cache memorije možete upotrijebiti i kako biste definirali koliko će dugo unosi za tu tablicu ostati spremljeni u cache memoriji za upite. Ovo je korisno za izvore podataka koji se često ažuriraju.
U alatu za administriranje modela, u sloju Fizički, dvaput pritisnite fizičku tablicu.
Ako upotrebljavate alat za modeliranje semantike, pogledajte Koja su opća svojstva fizičke tablice?.
U dijaloškom okviru sa svojstvima Fizička tablica na kartici Općenito odaberite jednu od sljedećih mogućnosti:
Želite li omogućiti spremanje u cache memoriju, odaberite Može se spremiti u cache memoriju.
Želite li spriječiti spremanje tablice u cache memoriju, isključite opciju Može se spremiti u cache memoriju.
Želite li postaviti vrijeme isteka cache memorije, definirajte Vrijeme postojanosti cache memorije i definirajte mjernu jedinicu (dani, sati, minute ili sekunde). Ako ne želite da unosi u cache memoriju automatski isteknu, odaberite Cache memorija nikad ne istječe.
Pritisnite U redu.
Kad semantičke modele izmijenite s pomoću alata za modeliranje semantike ili alata za administriranje modela, promjene će utjecati na unose koji su spremljeni u cache memoriju. Ako, na primjer, promijenite definiciju fizičkog objekta ili dinamičnu varijablu semantičkog modela, unosi u cache memoriji koji navode taj objekt ili varijablu više možda neće biti valjani. Zbog tih promjena može biti potrebno očistiti cache memoriju. Trebate biti svjesni dva scenarija: kad izmijenite postojeći semantički model i kad stvorite (ili učitate) nov semantički model.
Promjene semantičkog modela
Kad izmijenite semantički model ili učitate drugu .rpd datoteku, sve unesene promjene koje utječu na unose u cache memoriji automatski će uzrokovati čišćenje svih unosa u cache memoriji koji navode promijenjene objekte. Čišćenje će se dogoditi kad učitate promjene. Ako, na primjer, izbrišete fizičku tablicu iz semantičkog modela, svi unosi u cache memoriji koji navode tu tablicu očistit će se nakon prijave. Sve promjene na semantičkom modelu iz Logičkog sloja pročišćavaju sve unose u cache memoriju tog semantičkog modela.
Promjene u varijablama globalnog semantičkog modela
Vrijednosti varijabli globalnog semantičkog modela osvježavaju se podacima dobivenima iz upita. Kad definirate varijablu globalnog semantičkog modela, stvarate inicijalizacijski blok ili upotrebljavate postojeći koji sadrži SQL upit. Također konfigurirate plan za pokretanje upita i redovito osvježavanje vrijednosti varijable.
Ako se promijeni vrijednost varijable globalnog semantičkog modela, svi unosi u cache memoriji koji tu varijablu upotrebljavaju u stupcu postat će zastarjeli, a novi unos u cache memoriji generirat će se kad podaci iz tog unosa ponovo budu potrebni. Stari unos u cache memoriji neće se odmah ukloniti, već će u njoj ostati sve dok se ne očisti uz pomoć mehanizma za spremanje u cache memoriju.
Jedna od glavnih prednosti spremanja upita u cache memorije jest poboljšati izvedbu upita.
Spremanje upita u cache memoriju može biti korisno za sistemsko postavljanje cache memorije tijekom neaktivnosti tako što će se upiti pokrenuti, a njihovi će se rezultati spremiti u cache memoriju. Za dobru strategiju morate znati kad će doći do pronalaska u cache memoriji.
Ako cache memoriju želite sistemski postaviti za sve korisnike, cache memoriju možete sistemski postaviti sljedećim upitom:
SELECT User, SRs
Nakon što obavite sistemsko postavljanje cache memorije putem SELECT User, SRs
, sljedeći upiti dat će pronalazak u cache memoriji:
SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (korisnik je USER1) SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (korisnik je USER2) SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (korisnik je USER3)
Ovaj odjeljak sadrži sljedeće teme:
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 |
Svi stupci na popisu 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 |
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 |
Uvjet |
Kako bi se upit kvalificirao kao pronalazak u cache memoriji, ograničenja uvjeta Uvjet
Nadalje, stupci koji se upotrebljavaju u uvjetu 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 ( |
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, |
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 |
Ako upit u cache memoriji eliminira duplicirane zapise s |
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 |
Uvjet |
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 |
Ako se upotrebljava strategija zaštite baze podataka na razini retka, primjerice virtualna privatna baza podataka (VPD), vraćeni rezultati za podatke ovise o autorizacijskim sigurnosnim podacima korisnika.
Zbog toga Oracle Analytics Cloud mora znati upotrebljava li izvor podataka zaštitu baze podataka na razini retka te koje su varijable bitne za zaštitu.
Kako biste bili sigurni da se pronalazak u cache memoriji događa samo za unose koji obuhvaćaju i podudaraju se sa svim zaštićenim varijablama, morate ispravno konfigurirati objekt baze podataka i objekte varijable sesije u alatu za administriranje modela i to na sljedeći način:
Objekt baze. U fizičkom sloju na kartici Općenito u dijaloškom okviru Baza podataka odaberite Virtualna privatna baza podataka kako biste odredili da izvor podataka upotrebljava zaštitu baze podataka na razini retka.
Ako upotrebljavate zaštitu baze podataka na razini retka s dijeljenim spremanjem u cache memoriju, morate odabrati ovu opciju kako biste spriječili dijeljenje unosa u cache memoriji čiji se sigurnosni podaci ne podudaraju.
Objekt varijable sesije. Za varijable koje su povezane sa zaštitom u dijaloškom okviru Varijabla sesije odaberite Zaštićeno kako biste ih identificirali kao zaštićene pri upotrebi strategije zaštite baze podataka na razini retka. Ta opcija osigurat će da se unosi u cache memoriji označe kao zaštićene varijable, što omogućuje usklađivanje zaštićenih varijabli za sve dolazne upite.
Želite li povećati potencijalni broj pronalazaka u cache memoriji, jedna je strategija pokrenuti komplet upita za popunu cache memorije.
U nastavku je navedeno nekoliko prijedloga za vrste upita koje možete upotrijebiti pir stvaranju kompleta upita s kojim definirate sistemske postavke cache memorije.
Uobičajeni unaprijed izrađeni upiti. Upiti koji se često pokreću, osobito oni čija je obrada skupa, odlični su upiti za sistemsko postavljanje cache memorije. Upiti čiji se rezultati ugrađuju u dashboarde dobar su primjer uobičajenih upita.
SELECT popisi bez izraza. Eliminiranje izraza u stupcima SELECT
popisa proširuje mogućnost pronalaska u cache memoriji. Ako u cache memoriji postoji stupac s izrazom, on može na novi upit odgovoriti samo istim izrazom; ako u cache memoriji postoji stupac bez izraza, on na zahtjev za taj stupac može odgovoriti bilo kojim izrazom. Na primjer, zahtjev u cache memoriji kao što je:
SELECT QUANTITY, REVENUE...
može odgovoriti na novi upit kao što je:
SELECT QUANTITY/REVENUE...
no ne i obrnuto.
Bez uvjeta WHERE. Ako u rezultatu u cache memoriji nema uvjeta WHERE
, on se može upotrijebiti za odgovor na upite koji su u skladu s pravilima pronalaska u cache memoriji za popis SELECT s bilo kojim uvjetom WHERE
koji na popisu za projekciju sadrži stupce.
Uglavnom, najbolji upiti za sistemsko postavljanje cache memorije oni su upiti koji u bazi podataka troše mnogo resursa za obradu i koji će se vjerojatno ponovo izdati. Pripazite da pri sistemskom postavljanju cache memorije ne upotrijebite jednostavne upite koji će vratiti mnogo redaka. Za obradu takvih upita (na primjer, SELECT * FROM PRODUCTS
, pri čemu PRODUCTS
izravno mapira u pojedinačnu tablicu baze podataka) nije potrebno opsežna obrada baze podataka. Njihovi troškovi povezani su s mrežom i memorijom, koje cache neće smanjiti.
Kad Oracle Analytics Cloud osvježi varijable semantičkog modela, on provjerava poslovne modele kako bi se odredilo jesu li u njima navedene te varijable semantičkog modela. Ako je tako, Oracle Analytics Cloud očistit će cijelu cache memoriju za te poslovne modele. Pogledajte Kako promjene semantičkog modela utječu na cache memoriju upita.
Možete konfigurirati agenta za sistemsko postavljanje cache memorije za Oracle Analytics Cloud upite.
Sistemsko postavljanje cache memorije može poboljšati vrijeme odgovora za korisnike kad pokreću analize ili pregledavaju analize koje su ugrađene u njihove dashboarde. To možete postići tako da planirate agente za pokretanje zahtjeva kojima se osvježavaju ovi podaci.
Jedina razlika između agenata za sistemsko postavljanje cache memorije i drugih agenta jest to što automatski čiste prethodnu cache memoriju i ne prikazuju se na dashboardu kao upozorenja.
Bilješka:
Agenti za sistemsko postavljanje cache memorije čiste samo upite koji se točno podudaraju, pa i dalje mogu postojati zastarjeli podaci. Provjerite je li u strategiju spremanja u cache memoriju uključeno čišćenje cache memorije jer upiti agenta neće imati utjecaja na ad-hoc upite ili analize.Čišćenje cache memorije izbrisat će unose iz cache memorije za upite i jamči ažuriranost sadržaja. Možete automatski očistiti unose u cache memoriji za pojedinačne tablice tako da polje Vrijeme postojanosti cache memorije postavite za svaku tablicu u alatu za administriranje modela.
Bilješka:
Ako upotrebljavate alat za modeliranje semantike, pogledajte Koja su opća svojstva fizičke tablice?
Ovo je korisno za izvore podataka koji se često ažuriraju. Ako, na primjer, imate tablicu u koju se spremaju zgusnutiji podaci koji se ažuriraju svake minute, možete upotrijebiti postavku Vrijeme postojanosti cache memorije kako biste unose za tu tablicu očistili svakih 59 sekundi. Pogledajte Cache memorija i vrijeme postojanosti cache memorije za pojedinačne fizičke tablice.