Nem oldódott meg a probléma, új ötlet létrehozása
Nem értük még el a kívánt célt
Elértük a célunkat
Index alkalmazásával csökkenhet a CPU-használat is

Relációs adatbázisok hatékonysága, hangolása
és SQL optimalizálás

c1

Performance Planning

r

Mérnökök és gazdasági szakemberek végzik a hatékonysági problémák (pl. lassúság) megelőzése céljából már a kezdeti, tervezési fázisban. Ezen metódus alkalmazása mellett nincs feltétlen szükség adatbázis és SQL hangolásra.Forrás: előadáson elhangzottak/előadás dia

Szoftverberuházás

r

Szoftverberuházási megfontolások:Melyik adatbáziskezelő rendszer: melyik gyártó termékét éri meg megvásárolniHa pl. Oracle RDBMS, akkor:Enterprise Edition vagy Standard Edition (esetleg Express)?Az Enterprise Edition esetén létrehozható bittérképes index, az Express ingyenes.Ha Enterprise, akkor particionálási opció is?RAC vagy egygépes („single instance”) változat?Diagnostic Pack vagy Diagnostic+Tuning Pack, vagy semmi?Az Oracle Enterprise Manager tartalmazza a Diagnostic Pack-et, amivel könnyebb a monitorozás.A kérdés az, hogy a hangolást ember vagy gép végezze. 20 év múlva nagy valószínűséggel már emberi tényező nélkül történik a hangolás automatizáltan.Advanced Compression Option kell?Forrás: előadáson elhangzottak/előadás dia

SLA

r

SLA (Service Level Agreement): elvárások hatékonyságára vonatkozik. Például a felhasználók 99%-a kapjon választ 13 másodpercen belül.Forrás: előadáson elhangzottak/előadás dia

Performancia-elvárások

r

Fontos a performancia-elvárások meghatározása, melyek számszerűsíthetőek, konkrétak, precízek, mérhetőek, elérhetőek.Forrás: előadás dia

Baseline

r

A performancia-adatok viszonyítási szintje más néven „baseline”. Ezekhez hasonlítjuk majd az új mérések eredményeit.Forrás: előadáson elhangzottak/előadás dia

Élesbeállítás

r

Új rendszerek élesbeállítása „zöldmezősen” vagy már másik működő rendszerek mellett.Zöldmezős: egy új alkalmazás egy új gépen fut vagy,már létező gépen, létező adatbázis mellett létrehozott új adatbázis. (Megelőző terheléses teszt elvégzése javasolt összehasonlítás céljából.)Forrás: előadáson elhangzottak/előadás dia

Hardver- és szoftverarchitektúra megtervezése

r

A számítógépes rendszer hardver és szoftverarchitektúrájának a megtervezésének szempontjai:Kliens-szerver, vagy háromrétegű architektúra;Egyrétegű: arra a gépre jelentkezünk be, ahol az adatbázis megtalálható.Háromrétegű: a felhasználó a böngészőn keresztül éri el az adatbázist kliens-szerver kapcsolat keretében.CPU-k száma és típusa, I/O alrendszer, memória;Az adatbázisok licenceinek árazása az azt használó CPU-k számától függ, ezáltal a licencek árai nagyon magasra nőhetnek.Jelenleg az INTEL alapú technológia a vezető.Az I/O alrendszerek árai szintén az egekbe szökhetnek bizonyos "csodadiszkek" vásárlása esetén.A mai memóriák kapacitása 100 GB-os nagyságrendű is lehet, a TB még nem reális.Oracle RAC esetén a fürtözött gépek száma (A mellékelt videó erre ad bővebb magyarázatot);Több gép szimultán használata.Milyen egyéb komponensek lesznek: pl. tűzfalak, loadbalancer-ek, alkalmazás-szerverek, messagingrendszerek, IdM-ek, stb;Az alkalmazás lehet batch jellegű vagy interaktív (klikkeléses azonnali válasszal).Forrás: előadáson elhangzottak/előadás dia

Alkalmazás általános architektúrája

r

Az alkalmazás általános architektúrája, műveletek gyakorisága és ezek alapján hol várható hatékonysági probléma és milyen jellegű.Becsülni kell a műveletek előfordulásainak számát, jelezni kell a szűk keresztmetszetet.Forrás: előadáson elhangzottak/előadás dia

Skálázhatóság

r

A skálázhatóság azt jelenti, hogy nem feltétlen a válaszidő mérvadó, hanem a sok egyidejű felhasználó kiszolgálása, batch jellegűség. Példa: online bankolás.Forrás: előadáson elhangzottak/előadás dia

Terheléses tesztek

Terheléses tesztek

r

Ezen eljárás elvégzésére gyakran nincs elegendő idő az üzembe helyezés előtt. 10, 20, 30 évvel ezelőtt sok vállalat behívta az alkalmazottai zömét, hogy teszteljék a rendszert. Manapság ezt szoftverek végzik.Forrás: előadáson elhangzottakA mellékelt képen a rendőrség alap ügyviteli rendszerének (Robotzsaru) egyik OLTP adatbázisának terhelési diagramja látható.Forrás: http://konferenciak.advalorem.hu/uploads/files/Oracle%20technol%C3%B3gia%20alkalmaz%C3%A1sa%20a%20Bel%C3%BCgyminiszt%C3%A9riumban_BM.pdf

a

Database Tuning
(Intance Tuning and Database Tuning)

r

Egészen más tevékenység, mint az SQL hangolás. Keressük a szűk keresztmetszetet és igyekszünk a feladatok folyásán változtatni. Ez egy ciklikus folyamat, mely során az iterációk végén újabb és újabb szűk keresztmetszetek megszüntetése a feladat.Céljai:Az adatbáziskezelő rendszer különböző „lelassulási”, „elakadási” illetve „bedugulási” problémáinak a kinyomozása és kiiktatása;Lelassulás: redo log fájlok írásának lelassulása, lassú az archiválás.Elakadás: pl. lock-ra várás, mert valaki nem commit-ál.Bedugulás: túl nagy a terhelés, I/O alrendszerek túlterheléseAz I/O alrendszer minél hatékonyabb kihasználása;Nem feltétlen a RAM a gyorsítás eszköze.A gép memóriájának (RAM) a minél hatékonyabb kihasználása (caching);Esetleg több gép általi horizontális skálázhatóság;Szinte mindig a DBA a főszereplő;Sokat segíthet az operációs rendszer rendszergazdája, a diszk alrendszer rendszergazdája, néha a hálózati rendszergazda;Sokat segíthet az együttműködés a fejlesztő csapattal;Az adatbázishangolás adatbáziskezelő-specifikus ;Jellemzően kb. 10%-os javulásban reménykedünk feltéve, hogy jól működik a rendszer;Forrás: előadáson elhangzottak/előadás dia

SQL Tuning, Application Tuning

r

SQL hangolás, alkalmazáshangolás:Leginkább a fejlesztők, de gyakran a DBA-kal együttműködve végzik, mivel a DBA-k több jogosultsággal és az architektúrát illető ismerettel rendelkeznek, olykor előfordul, hogy csak a DBA-ra jut ez a feladat;Néha nagyságrendekkel tudunk felgyorsítani 1-1 SQL utasítást. Az más kérdés, hogy ez összességében mennyit nyom a latban.Gyakran az adatbáziskezelő rendszer butasága miatt kell SQL-t hangolnunk;Azért kell néha hangolni, mert az SQL nem procedurális nyelv, és a gép készíti el az utasítás végrehajtási tervét – néha nem az optimális terv készül el. A relációs adatbázisok tervei 90%+-ban optimálisak;Az a távlati cél, hogy „ne kelljen hangolnunk” ;Néha nem 1-1 SQL a baj, hanem azok beillesztése az alkalmazásba: ilyenkor alkalmazáshangolás történik.Forrás: előadáson elhangzottak/előadás dia

Kezdeti adatbázis és példány konfigurálás

Dedikált vagy osztott szerver típusú kapcsolatok

Flash Cache használata

r

Háromrétegű cache-elést eredményez, amely a memória és a merevlemez között áll. A közepes fontosságú fájlokat tárolja.Forrás: előadáson elhangzottak

Ideiglenes táblatér helyes konfigurálása

r

A temporális táblatérben tárolódnak a részeredmények, ha egy művelet kifut a tárhelyből.Forrás: előadáson elhangzottak

Táblaterek megfelelő beállítása

r

A táblaterek megfelelő beállítása: lokálisan karbantartott, automatikus szegmens karbantartású, fix méretű, vagy automatikusan növekvő. A növekmény mérete is fontos lehet. A kicsi növekmény nem jó. Forrás: előadáson elhangzottak/előadás dia

init.ora paraméterek helyes beállítása

A naplóállományok megfelelő száma és mérete

r

A nagy red log fájlok jók.Forrás: előadáson elhangzottak

Az archiválás konfigurálása

r

A rossz archiválás jobban fékezi a rendszert.Forrás: előadáson elhangzottak

Az UNDO táblatér helyes konfigurálása, ideiglenes UNDO használata

Monitorozás , mérés

r

Minden hangolás alapja a mérés, diagnosztizálás.Forrás: előadás dia

Adatbázis statisztikák

r

Minden hangolás alapja a mérés, diagnosztizálás. Ez X$-táblák, V$-nézetek (Dynamic Performance Tables) használatával történik.Jellemzői:Többnyire kumulatívak;Egyesek mintavételezésen alapulnak;Van egy olyan process, ami másodpercenként mintát vesz. Statisztikai alapon jól működik, mivel a nagyobb folyamatok továbbtartanak 1 másodpercnél, nem bújhatnak el. „Time Model” típusú statisztikák;Egymás közti arányok. A Diagnostic Pack szükséges hozzá.Forrás: előadáson elhangzottak/előadás dia

V$ACTIVE_SESSION_HISTORY

V$ACTIVE_SESSION_HISTORY

r

Statisztikai adatok a közelmúltról a memóriában és az adatbázisban. A Diagnostic Pack tartalmazza.Forrás: előadáson elhangzottak/előadás diaA session-ök aktivitásából vett mintát mutatja meg a nézet. A nézet 1 másodpercenkénti pillanatfelvételeket tartalmaz az aktív session-ökről. A "SAMPLE_TIME" oszlopban látható, hogy milyen időpontokban készültek a pillanatfelvételek. Azok számítanak aktívaknak, amelyek a processzorban vannak, vagy egy olyan eseményre várnak, amelyek nem tartoznak az "Idle" várakozási osztályhoz.Bővebben a V$ACTIVE_SESSION_HISTORY-ról:https://docs.oracle.com/database/121/REFRN/GUID-69CEA3A1-6C5E-43D6-982C-F353CD4B984C.htm#REFRN30299

V$SQLSTATS

V$SQLSTATS

r

 Az SQL utasítások terhelése.Forrás: előadás diaAz SQL utasítások teljesítményének statisztikai adatait tartalmazza a nézet, mint például az utasítások végrehajtásához, parse-olásához és fetch-eléséhez szükséges processzoridőt ("CPU_TIME"), vagy a végrehajtás, parse-olás és fetch-elés közben eltelt időt ("ELAPSED_TIME", párhuzamos műveletek esetén ez egy kumulált érték) mikroszekundumban mérve, stb. Az "SQL_TEXT" oszlop tartalmazza az SQL szövegek első 1000 karakterét.Bővebben a V$SQLSTATS-ról:https://docs.oracle.com/database/121/REFRN/GUID-495DD17D-6741-433F-871D-C965EB221DA9.htm#REFRN30396

V$SYSSTAT

V$SYSSTAT

r

A példány központi „sikerszámai”. Például mennyi commit, rollback történt.Forrás: előadáson elhangzottak/előadás diaA rendszerről készült statisztikai adatokat tartalmazza a nézet. A "NAME" oszlopban a rendszerről készült statisztikák megnevezése, a "VALUE" oszlopban a statisztikák értékei, a "STAT_ID" oszlopban pedig a statisztikák azonosítói láthatók.Bővebben a V$SYSSTAT-ról:https://docs.oracle.com/database/121/REFRN/GUID-250136E5-E07E-4A78-9F67-28C0D3C6E922.htm#REFRN30272

V$SESSTAT

V$SESSTAT

r

 A munkamenetek adatai külön-külön.Forrás: előadás diaA session-ök statisztikai adatait tartalmazza a nézet. Ahhoz, hogy a "STATISTIC#" oszlopban szereplő számok alapján beazonosíthassuk a statisztikák megnevezéseit, szükségünk van a V$STATNAME nevű táblára.Bővebben a V$SESSTAT-ról:https://docs.oracle.com/database/121/REFRN/GUID-80CE202B-D7D4-4949-8CA6-935FD61DA2E1.htm#REFRN30232

V$SEGSTAT

V$SEGSTAT

r

A szegmensek használata.Forrás: előadás diaA szegmens szintek statisztikai adatait tartalmazza a nézet.Bővebben a V$SEGSTAT-ról:https://docs.oracle.com/database/121/REFRN/GUID-097DB23C-7BA5-4C02-B595-90F1D3337AA2.htm#REFRN30221

stb.

Adatok begyűjtése

(valós idejű) ADDM report

r

Automatikus adatbázis-hangolás, azaz Automatic Database Diagnostic Monitor. Adatbázis-hangoló szoftver, tanácsokat ad. (Nem minden javaslata ér aranyat.)Forrás: előadáson elhangzottak/előadás dia

Oracle Enterprise Manager

r

Monitorozás a GUI felületeken keresztül.Forrás: előadás dia

ASH analitika

r

Active Session History Report, ASH analitika.Forrás: előadás dia

Compare Period ADDM report

r

Összehasonlítja a korábbi reportokkal és tanácsokat ad.Forrás: előadáson elhangzottak/előadás dia

Riasztások

r

Adatbázis metrikák és szerver generálta riasztások (Server Generated Alerts): anomáliák esetén figyelmeztet. Például egy adott időpontban több a tranzakció a szokásosnál.Forrás: előadáson elhangzottak/előadás dia

STATSPACK snapshots

r

Az AWR előfutára, csupán ez ingyenes.Forrás: előadáson elhangzottak

AWR snapshots

AWR snapshots

r

Az Automatic Workload Repository infrastruktúra használata: AWR pillanatfelvételek. Diagnostic Pack tartalmazza, amellyel az elmúlt napok adatai nézhetők vissza.A mellékelt kép az AWR architektúrát hivatott bemutatni.Forrás: előadáson elhangzottak/előadás diaForrás: http://dbakevlar.com/wp-content/uploads/2015/01/pt5-1024x529.png

V$-nézetekből lekérdezés

Metrika „baseline”-ok

Példány hangolásának a menete

Probléma definiálása

r

Megfogalmazzuk a célkitűzéseket, amelyek számszerűek, definiáljuk a problémát.Forrás: előadás dia

I/O és egyéb erőforrások hatékony használata

Aszinkron I/O

r

Az aszinkron I/O helyes használata. Általában a DBA felel érte.Forrás: előadáson elhangzottak/előadás dia

ASM vagy hagyományos fájlrendszer

ASM vagy hagyományos fájlrendszer

r

A képen az ASM alkalmazásának egy gyakorlati példája van illusztrálva. Az ábra alapján van két diszkekből álló csoportunk: az egyik diszk csoport 4 db, a másik 2 db lemezt foglal magába. Az adatbázisnak mindkét csoporthoz van hozzáférése. Az ábra konfigurációja alapján több instance (az adatbázist kezelő szoftver) van, azonban csupán egy Oracle ASM instance szükséges ahhoz, hogy kiszolgálja a többi adatbázis szoftvert.Forrás: https://docs.oracle.com/cd/E11882_01/server.112/e18951/asmcon.htm#OSTMG03601Forrás: http://www.adp-gmbh.ch/ora/misc/database_vs_instance.html

a
SAME vagy RAID-5

SAME vagy RAID-5

r

A S.A.M.E. (Stripe and Mirror Everything) módszertant azt Oracle kezdte ajánlani sok évvel ezelőtt a magas szintű rendelkezésre állás, teljesítmény, kezelhetőség optimalizálásának megközelítéséből a jövőbeli konfiguráció leegyszerűsítése céljából. Egy 1 MB-os fix méretű sáv szélessége (stripe size) ajánlott a S.A.M.E. módszertanban, amely megfelel mind az OLTP és az adattárház-rendszerek számára. Az ASM implementálja a S.A.M.E. módszertant, ráadásul automatikus működést biztosít neki.Forrás: https://docs.oracle.com/cd/B28359_01/server.111/b32024/vldb_storage.htmA RAID-5 3 vagy több lemezen tárolja a paritás adatokat. A paritás adatok a saját lemezüktől különböző lemezekre vannak rendezve, hogy az elveszett blokk adatai ne vesszen el. A RAID-5 írás overhead-je jelentős, ami lassabbá teszi a többi RAID metódusnál különösen akkor, amikor lemezhiba történik, de jóval kevesebb lemezt igényel, így költséghatékonyabb. Régen az emberek elkerülték a RAID-5-t adatbázis alkalmazások esetén, de a lemezsebesség és a vezérlő teljesítmény fejlődésével egy életképes megoldássá vált adatfájlokhoz, ha nem a teljesítményt tartjuk szem előtt.Forrás: https://oracle-base.com/articles/misc/oracle-and-raid

a

I/O kalibráció

r

El kell dönteni, hogy mekkora "falatonként" olvassuk a fájlokat.Forrás: előadáson elhangzottak

Karbantarthatóság vagy performancia

Biztonság vagy performancia

r

Katasztrófa, áramszünet után működőképes legyen-e a rendszer vagy magas teljesítményű?Forrás: előadáson elhangzottak

Oracle Database Resource Manager

r

A feladatok priorizálására képes, „önmegtartóztatás” a hatékonyság érdekében.Forrás: előadáson elhangzottak/előadás dia

Instance Caging

r

Erőforrásokkal gazdálkodik, hogy egy instance se sajátítsa ki teljes mértékben erőforrásokat. A virtuális gépek elterjedése óta aktualitását vesztette.Forrás: előadáson elhangzottak

Op. rendszer, diszk, hálózat hangolása

SQL hangolás körülményei, menete

Iteratív folyamat

r

Egy iteratív folyamat az SQL-ek „javítása” annak érdekében, hogy lecsökkenjen a futásidejük, illetve hogy lecsökkenjen az erőforrás-használatuk. Forrás: előadás dia

Előfeltételei

r

Forrás: előadás dia

Oracle adatbázis architektúrális ismeretek

Az SQL nyelv alapos ismerete

A különböző hangolási eszközök és lehetséges módszerek ismerete

Az alkalmazás logikájának az ismerete

Az adatok természetének az ismerete

Hozzáállás

Proaktív

r

Mielőtt elromlik javítok, a baj megelőzése. A cég számára ez az előnyös.Forrás: előadáson elhangzottak

Reaktív

r

A hiba beállta után való reagálás, hibaelhárítás. A munkavállaló számára előnyös több dicséretért és pénzért.Forrás: előadáson elhangzottak

Kézi módszerek vagy automatikus hangolás

Felgyorsítás, vagy csupán a lelassulás megakadályozása

r

Preventív regresszió: arra való törekedés, hogy ma ne legyen rosszabb, mint tegnap volt.Forrás: előadáson elhangzottak

SQL hangolás lépései

Megkeressük a „nagy terhelést” okozó SQL-eket (Big SQL)

Hangolás eszközei

Általunk végzett hangolás eszközei

Végrehajtási terv tanulmányozása

r

Tanulmányozzuk a végrehajtási tervet és megpróbáljuk megváltoztatni.Forrás: előadás dia

Az alkalmazások „SQL trace”-elése, „tkprof” és „trcsess” segédeszközök

AWR reportok megfelelő részeinek a tanulmányozása

STATSPACK reportok az AWR reportok helyett

SQL Monitoring használata

Real Time Database Operation Monitoring

Az Oracle Enterprise Manager, esetleg valamelyest az SQL Developer használata

Harmadik fél által gyártott Oracle SQL hangolási eszközök

Harmadik fél által gyártott Oracle SQL hangolási eszközök
r

Például: TOAD (Tool for Oracle Application Developers) vagy egyebek.Forrás: előadás diaA TOAD funkciói:Leegyszerűsített adatbázis fejlesztésMinőségi kód biztosításaAutomatizált kódtesztelésAutomatikus kódanalízisAdatbázis teljesítmény tesztelésStabilitás és állapotfelmérésCsoportmunkaKockázatcsökkentés és automatizálásForrás: http://szoftver.hu/szoftver/quest/toad-oracle

a

Automatikus eszközök

r

Az automatikus hangolási eszközök 20 múlva kiszorítják az ember általit.Forrás: előadáson elhangzottak

Automatic Database Diagnostic Monitor (ADDM)

r

Adatbázis-hangoló szoftver, tanácsokat ad. Továbbküldhet a Tuning Advisor-hoz.Forrás: előadáson elhangzottak

SQL Tuning Advisor
(Automatic Tuning Optimizer)

r

SQL utasítások hangolása.Forrás: előadáson elhangzottak

SQL Access Advisor

r

Indexeléseket javasol.Forrás: előadáson elhangzottak

Adaptív végrehajtási tervek

r

Csak Oracle 12-ben működik.Forrás: előadás dia

SQL Plan Management (SPM)

r

A regresszió megakadályozásáért felel.Forrás: előadáson elhangzottak

SQL Performance Analyzer

Database Replay

Automatic SQL Tuning Task

Automatic SPM Evolve Task

Feldolgozás lépései

1. OPEN

r

Munkaterület nyitása a programban.Forrás: előadás dia

2. PARSE

r

 Az SQL parszolása a munkaterületben.Forrás: előadás dia

3. DESCRIBE

r

Az eredmény leírása.Forrás: előadás dia

4. BIND

r

A változók „bekötése”.Forrás: előadás dia

5. EXECUTE

r

Az SQL végrehajtása.Forrás: előadás dia

6. FETCH

r

Adatok „kinyerése”.Forrás: előadás dia

7. CLOSE

r

A munkaterület (kurzor) lezárása.Forrás: előadás dia

Végrehajtási terv

r

Forrás: előadás dia

A PARSE során vagy már a gyorsítóban megtalálja a tervet az adatbáziskezelő szoftver (Soft Parse), vagy akkor készíti el (Hard Parse) és beteszi a gyorsítóba.

Bind változók használatával csökkentjük a Hard Parse-ok számát („Sharing the cursors”).

Létezik soros és parallel terv. A soros (szekvenciális) terv olyan alaplépések sorozata, amelyet a gép elvégez annak érdekében, hogy előállítsa az eredményt.

A végrehajtási terv fa szerkezetű.

Főbb elemei

r

Forrás: előadás dia

Hozzáférési „útvonalak” (ACCESS PATH)

FULL TABLE SCAN

INDEX ACCESS: UNIQUE

INDEX ACCESS: RANGE SCAN

TABLE ACCESS BY INDEX ROWID

...

A JOIN-ok sorrendje

A JOIN metódusok

NESTED LOOPS JOIN

SORT MERGE JOIN

HASH JOIN

Megjelenítése

PLAN_TABLE segítségével

r

DBMS_XPLAN.DISPLAY Használata:EXPLAIN PLAN FOR select salary from employees where employee_id =15;SELECT * FROM  TABLE(DBMS_XPLAN.DISPLAY)Forrás: előadás dia

Shared Poolból

r

DBMS_XPLAN.DISPLAY_CURSOR Forrás: előadás dia

AWR adatokból

r

DBMS_XPLAN.DISPLAY_AWR Forrás: előadás dia

Egyéb módszerek

r

SQL*Plus és SQL*Developer AutotraceSQL trace állomány és tkprof segítségévelSQL Tuning Set-bőlAWR vagy STATSPACK mérésekből10053-as szintű trace-elésből Forrás: előadás dia

Grafikus eszközök

r

Forrás: előadás dia

SQL*Plus

SQL*Developer

Oracle Enterprise Manager

Befolyásolási módszerei

r

Forrás: előadás dia

Egyes init.ora paraméterek beállításai

Optimalizálási HINT-ek beállítása

Verifikált tervek elfogadása

r

SQL Plan ManagementForrás: előadás dia

SQL profilok elfogadása

r

SQL Tuning AdvisorForrás: előadás dia

SQL Tuning direktívák

Stored Outlines

r

Lassan eltűnik.Forrás: előadás dia

A helyes indexelés

Optimalizáló statisztikák frissítése

Párhuzamosítás

A lekérdezés átfogalmazása

Adatbázishangolás Oracle rendszer esetén

SQL optimalizálás

Befejezés

Újra mérés

r

Újra mérünk (megismételjük a 2. lépést) és leellenőrizzük, hogy a probléma megoldódott-e. Ha nem: visszatérünk újabb ötletet keresni. Ha igen, megnézzük, hogy elértük-e már a célunkat. Ha igen: abbahagyjuk. Ha nem, keressük a következő szűk keresztmetszetet és azzal megismételjük a fenti folyamatot.Forrás: előadás dia

Iteráció befejezése

Ötlet implementálása

r

Implementáljuk az előbb gyártott ötletet.Forrás: előadás dia

Szűk keresztmetszet keresése

r

Megvizsgáljuk az adatokat, és keressük a szűk keresztmetszetet. Elméletet gyártunk, hogy mi a baj, és ötletet, hogyan lehetne ezt megszüntetni/enyhíteni.Forrás: előadás dia

Statisztikák gyűjtése

r

Adatbázis statisztikákat és operációs rendszer statisztikákat gyűjtünk.Forrás: előadás dia

Ha már feljavult, megpróbáljuk megakadályozni a későbbi regressziókat (visszalassulásokat)

Megpróbáljuk javítani a szuboptimális futási jellemzőket (leginkább megpróbáljuk felgyorsítani)

Definiáljuk a probléma típusát és okát

Megpróbáljuk megállapítani, hogy van-e bármi baj ezekkel az utasításokkal (azok futásával)

Performancia adatok gyűjtése

r

Performancia adatokat gyűjtünk ezekről a „nagy” SQL-ekről (SQL-ek futási statisztikáit).Forrás: előadás dia

Példa index nélküli végrehajtási tervre

Példa index nélküli végrehajtási tervre

r

Példa:Index használata nélkül a rendelés sorszámának, a rendelés idejének és az ügyfél azonosítójának lekérdezése egy adott rendelési időpontban 68 egység költséggel (cost, CPU használat is része) jár, mivel a where feltétel teljesüléséhez a teljes táblát át kell fésülni. Erre, a teljes tábla beolvasására utal a "TABLE ACCESS (FULL)" kifejezés a végrehajtási tervben.Forrás: 11. heti gyakorlat

Példa indexes végrehajtási tervre

Példa indexes végrehajtási tervre

r

Példa:Kifejezetten a rendelési időre explicit módon létrehozott nem-egyedi index használatával a rendelés sorszámának, a rendelés idejének és az ügyfél azonosítójának lekérdezése egy adott rendelési időpontban már csak 2 egység költséggel (cost, CPU használat is része) jár, mivel a where feltétel teljesüléséhez nem kell bejárni a teljes táblát, csupán annak az oszlop értékeinek sorazonosítóit, amelyikre az indexet létrehoztuk. Erre, az index olvasási műveletre utal az "INDEX (RANGE SCAN)" kifejezés a végrehajtási tervben, amely mellett megtalálható a frissen általunk létrehozott és használatban lévő "ind_rendido" indexünk neve.Forrás: 11. heti gyakorlat