por Bence Balázs 7 anos atrás
477
Mais informações
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
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
Performancia adatokat gyűjtünk ezekről a „nagy” SQL-ekről (SQL-ek futási statisztikáit).
Forrás: előadás dia
Adatbázis statisztikákat és operációs rendszer statisztikákat gyűjtünk.
Forrás: előadás dia
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
Implementáljuk az előbb gyártott ötletet.
Forrás: előadás dia
Ú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
Lassan eltűnik.
Forrás: előadás dia
SQL Tuning Advisor
Forrás: előadás dia
SQL Plan Management
Forrás: előadás dia
Forrás: előadás dia
DBMS_XPLAN.DISPLAY_AWR
Forrás: előadás dia
DBMS_XPLAN.DISPLAY_CURSOR
Forrás: előadás dia
DBMS_XPLAN.DISPLAY
Használata:
Forrás: előadás dia
A munkaterület (kurzor) lezárása.
Forrás: előadás dia
Adatok „kinyerése”.
Forrás: előadás dia
Az SQL végrehajtása.
Forrás: előadás dia
A változók „bekötése”.
Forrás: előadás dia
Az eredmény leírása.
Forrás: előadás dia
Az SQL parszolása a munkaterületben.
Forrás: előadás dia
Munkaterület nyitása a programban.
Forrás: előadás dia
Az automatikus hangolási eszközök 20 múlva kiszorítják az ember általit.
Forrás: előadáson elhangzottak
A regresszió megakadályozásáért felel.
Forrás: előadáson elhangzottak
Csak Oracle 12-ben működik.
Forrás: előadás dia
Indexeléseket javasol.
Forrás: előadáson elhangzottak
SQL utasítások hangolása.
Forrás: előadáson elhangzottak
Adatbázis-hangoló szoftver, tanácsokat ad. Továbbküldhet a Tuning Advisor-hoz.
Forrás: előadáson elhangzottak
Például: TOAD (Tool for Oracle Application Developers) vagy egyebek.
Forrás: előadás dia
A TOAD funkciói:
Forrás: http://szoftver.hu/szoftver/quest/toad-oracle
Tanulmányozzuk a végrehajtási tervet és megpróbáljuk megváltoztatni.
Forrás: előadás dia
Preventív regresszió: arra való törekedés, hogy ma ne legyen rosszabb, mint tegnap volt.
Forrás: előadáson elhangzottak
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
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
Forrás: előadás dia
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
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
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
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
El kell dönteni, hogy mekkora "falatonként" olvassuk a fájlokat.
Forrás: előadáson elhangzottak
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.htm
A 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 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#OSTMG03601
Forrás: http://www.adp-gmbh.ch/ora/misc/database_vs_instance.html
Az aszinkron I/O helyes használata. Általában a DBA felel érte.
Forrás: előadáson elhangzottak/előadás dia
Megfogalmazzuk a célkitűzéseket, amelyek számszerűek, definiáljuk a problémát.
Forrás: előadás dia
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 dia
Forrás: http://dbakevlar.com/wp-content/uploads/2015/01/pt5-1024x529.png
Az AWR előfutára, csupán ez ingyenes.
Forrás: előadáson elhangzottak
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
Összehasonlítja a korábbi reportokkal és tanácsokat ad.
Forrás: előadáson elhangzottak/előadás dia
Active Session History Report, ASH analitika.
Forrás: előadás dia
Monitorozás a GUI felületeken keresztül.
Forrás: előadás dia
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
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:
Forrás: előadáson elhangzottak/előadás dia
A szegmensek használata.
Forrás: előadás dia
A 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
A munkamenetek adatai külön-külön.
Forrás: előadás dia
A 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
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 dia
A 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
Az SQL utasítások terhelése.
Forrás: előadás dia
Az 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
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 dia
A 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
Minden hangolás alapja a mérés, diagnosztizálás.
Forrás: előadás dia
A rossz archiválás jobban fékezi a rendszert.
Forrás: előadáson elhangzottak
A nagy red log fájlok jók.
Forrás: előadáson elhangzottak
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
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
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
SQL hangolás, alkalmazáshangolás:
Forrás: előadáson elhangzottak/előadás dia
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:
Forrás: előadáson elhangzottak/előadás dia
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
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 elhangzottak
A 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 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
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
A számítógépes rendszer hardver és szoftverarchitektúrájának a megtervezésének szempontjai:
Forrás: előadáson elhangzottak/előadás dia
Új rendszerek élesbeállítása „zöldmezősen” vagy már másik működő rendszerek mellett.
Forrás: előadáson elhangzottak/előadás dia
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
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
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
Szoftverberuházási megfontolások:
Forrás: előadáson elhangzottak/előadás dia
A gondolattérkép a teljes diasor szövegét tartalmazza kiegészítő tartalommal.