Oracle tuning server.101/b10752/toc.htm.

Slides:



Advertisements
Hasonló előadás
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Advertisements

10. gyakorlat SQL SELECT.
Tananyag: konzultáció
2012. tavaszi félév Véső Tamás. A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
Analitikus függvények
Analitikus, statisztikai és szélsőérték fv-k Hári Veronika
Anyagadatbank c. tárgy gyakorlat
Architektúra (Oracle Library – Concepts)
Oracle SQL Tuning Bevezetés
Önálló labor beszámoló – 8. félév Nyárády Péter QJA31E
2006. december 2.Markó Tamás, PTE TTK1 Az Oracle SQL 15. Hangolás.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Delphi programozás alapjai
Azonosítók és képzési szabályaik
Adatbázis gyakorlat – SUBSELECT – Tarcsi Ádám március.
Többtáblás lekérdezések, allekérdezések Rózsa Győző
1 Végrehajtási terv és TKPROF a hatákonyság növelésére Roger Schrag Database Specialists, Inc.
SQL – DQL (Data Query Language ) adat lekérdezések
Virtuális Obszervatórium Korszerű adatbázisok 2014.
SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések
Adatbázis-kezelés ACCESS program:
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 4. Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 5. Nézettáblák létrehozása, módosítása és törlése.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
adminisztrációs feladatok
ADATBÁZISOK
ADATBÁZISOK
SQL Server 2005 relációs adattárház technológiák
Oktassunk adatbázis-kezelést! Micskei Zoltán Microsoft Referencia Iskola.
F28DM Query Optimization 1 F28DM adatbáziskezelő rendszerek Lekérdezések optimalizálása Monica Farrow Szoba: EMG30, Ext: 4160 Anyag.
Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
Nézettáblák létrehozása, módosítása és törlése
SQL – OLAP 7. óra. Hatékonysági kérdések Időigényes műveletek (ahol lehet javítani):  f(v) (C),  f(D.a) (C), D.a (C),  D, aggr (C) (és ahol nem…) C.
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
- adatbázisséma definiálása (DDL) Data Definition Languages, - adatok aktualizálása (DML),Data Maniputaion Language - lekérdezési lehetőségek (DML) Data.
SQL. SQL = Structured Query Language (= struktúrált lekérdező nyelv). A relációs adatbázis-kezelés szabványos nyelve. Nem algoritmikus nyelv, de algoritmikus.
SQL.
Az SQL nyelv alapjai.
1 Informatikai Szakképzési Portál Adatbázis kezelés Alapfogalmak.
2012. tavaszi félév Véső Tamás. Kérdezze le minden dolgozó nevét, jövedelmét, részlegének nevét és a részlegében dolgozók legkisebb és legnagyobb jövedelmét,
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
2012. tavaszi félév Véső Tamás Véső Tamás OE­NIK / 29.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
ADATBÁZIS HASZNÁLAT I. 3. gyakorlat. Figyelem!!! A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem.
Adatbázis-kezelés SQL-lel
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
Fejlesztés PHP-NUKE portál rendszerre Horváth Zoltán Második Magyarországi PHP Konferencia március 27. Copyright PHP Konferencia,
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
ORACLE ORDBMS adminisztrációs feladatok 3. rész dr. Kovács László 2004.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
SQL SELECT parancsok Kottyán László. A bemutató mintatáblái.
1 Informatikai Szakképzési Portál Adatbázis kezelés DQL – Adatlekérdező nyelv.
Adatbázisok gyakorlat
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
Webprogramozó tanfolyam
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
1 Verseny 2000 gyakorlat SQL 2000 Server Portál adatbázis létrehozása.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Automatikus fizikai tervezési javaslatok XML adatbázisokhoz Balogh Bernadett Kresz Marcell Cseh Tamás.
Gráfadatbázisok Rácz Gábor.
Indexek 22 Index Table Key Row pointer … WHERE key = 22.
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Hangyál Zoltán Principal Engineer LogMeIn
Előadás másolata:

Oracle tuning server.101/b10752/toc.htm

Teljesítményhangolás eszközei: Diagnostic pack

ADDM •Automatic Database Diagnostic Monitor: a folyamatos teljesítményanalízis alapján felhívja az adatbázis adminisztrátor, vagy a fejlesztő figyelmét azokra a szűk keresztmetszetekre, ajánlásokat tesz.

Tuning pack

Az optimalizáló

Query Transformer – lekérdezés átalakító •View Merging (nézet összeolvasztás) •Predicate Pushing (feltétel áthelyezés) •Subquery Unnesting (allekérdezés kibontás) •Query Rewrite with Materialized Views (lekérdezés átírás materializált nézetekkel)

Estimator – becslő •Selectivity – szelektivitás •Cardinality – számosság •Cost – költség

Selectivity – szelektivitás •A szelektivitás egy nullától egyig terjedő intervallumba eső szám. •Mindig egy feltételhez kötődik, és azt reprezentálja, hogy sorok egy halmazából hány felel meg a feltételnek.

Cardinality – számosság •A számosság a sorok számát mutatja sorok egy halmazában. –Alap számosság (Base Cardinality) –Effektív számosság (Effective Cardinality) –Összekapcsolási számosság (Join Cardinality) –Egyediségi számosság (Distinct Cardinality) –Csoport számosság (Group Cardinality)

Cost – költség •A költség a munka egységét, vagy a felhasznált erőforrásokat reprezentálja. •Az optimalizáló a munka egységének a diszk I/O-t, a CPU felhasználást és a memória felhasználást tekinti.

Plan Generator – végrehajtási terv generátor •Kifejezések és feltételek kiértékelése •Utasítás transzformáció •Optimalizálási cél meghatározása •Hozzáférés módja (Access Path) •Összekapcsolási sorrend (Join Order) •Összekapcsolási mód (Join Method)

Optimalizálási cél •válaszidőre (response time) •áteresztő képességre (throughput)

Optimizer_mode •CHOOSE -deprecated •ALL_ROWS •FIRST_ROWS_n •FIRST_ROWS •RULE -deprecated

CHOOSE •Az optimalizáló választ a költség alapú és a szabály alapú megközelítés között attól függően, hogy rendelkezésre állnak-e statisztikák, vagy nem.

ALL_ROWS •Az optimalizáló mindenféleképpen költség alapú optimalizálási módot választ függetlenül attól, hogy rendelkezésre állnak-e statisztikák vagy sem. A cél az áteresztő képesség fokozása. Alapértelmezett.

FIRST_ROWS_n •Az optimalizáló itt is mindenképpen költség alapú optimalizálást választ. A cél a leggyorsabb válaszidő, az első n sor leggyorsabb megkapása; •n=1, 10, 100, 1000

FIRST_ROWS •Költség és heurisztika keverékét használja az optimalizáló ahhoz, hogy az első néhány sort a leggyorsabban tudja visszaadni.

RULE •Ennek az értéknek a hatására az optimalizáló mindenképpen szabály alapú optimalizálási módot választ függetlenül attól, hogy rendelkezésre állnak-e statisztikák vagy sem.

Végrehajtási terv (Execution Plan)

Végrehajtási terv lekérése •SQL Commands/Explain •Vagy: Explain plan for sql_utasítás; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

Végrehajtási terv részei •Művelet (operation) •Hozzáférés módja (option) •Művelet eredménysorainak száma (rows) •Eredményhalmaz mérete (bytes) •Művelet költsége (cost) •Feltételek (predicates)

Feltételek (predicates) •Hozzáférési feltétel (Access predicate) a művelet végrehajtása közben kerül kiértékelésre, csak a feltételnek megfelelő sorok kerülnek be az eredményhalmazba. •Szűrőfeltétel (Filter predicate) az eredményhalmazra utólagosan kerül kiértékelésre a szűrőfeltétel, amely alapján tovább szűkülhet az eredményhalmaz.

Hozzáférési módok (néhány) •Teljes tábla olvasás (Full Table Scan) •Index olvasás (Index Scan) •Sorazonosító olvasás (Rowid Scan) •Táblaminta olvasás (Sample Table Scan)

Teljes tábla olvasás (Full Table Scan) •A teljes tábla olvasás azt jelenti, hogy egy adott táblát a végrehajtás során az elejétől a végéig bejárunk, és minden egyes sorra külön-külön eldöntjük, hogy megfelel- e a WHERE utasításrészben szereplő feltételeknek.

Optimalizálás full table scan esetén DB_FILE_MULTIBLOCK_READ_COUNT paraméter: a pufferbe előreolvasott blokkok száma a full scan során. Operációs rendszer és puffer cache méret függvénye

Sorazonosító olvasás (Rowid Scan) •Ha egyetlen sort keresünk, akkor a sorazonosító olvasás a leggyorsabb mód. •Általában a sorazonosító olvasás a második lépés az index olvasás után, ha az index nem tartalmazza az eredményhalmazban látni kívánt oszlopokat.

Index olvasás (Index Scan) •Az index olvasás egy olyan művelet, amely bejárja az indexet az indexelt oszlopok alapján, majd visszaadja azoknak a sorazonosítók a halmazát, amelyek megfeleltek a keresési kritérium(ok)nak.

Index olvasás fajtái •Index Unique Scan •Index Range Scan •Index Skip Scan •Full Scan •Fast Full Index Scan •Index Joins •Bitmap Joins

Több tábla összekapcsolása •Nested Loop •Hash Join •Sort-merge Join

Nested Loop •ha kis méretű adathalmazokat akarunk összekapcsolni és a kapcsolási feltétel segítségével gyorsan el tudjuk érni a második táblát. •A külső tábla minden sorára megnézzük, hogy a belső tábla valamely sora hozzákapcsolható-e.

Hash Join •A végrehajtás során egy hash tábla épül fel a kisebbik adathalmaz kapcsolási kulcsa alapján, majd bejárjuk a nagyobbik adathalmazt és a kapcsolási kulcs alapján megtaláljuk az összekapcsolt sorokat. •Akkor érdemes Hash Join-t használni, ha a hash tábla elfér a memóriában  PGA

Sort-merge Join •Először rendezzük (sort) mindkét adathalmazt, •majd összeolvasztjuk (merge) a két adathalmazt a kapcsolófeltétel(ek) alapján.

Sort-merge Join használata a USE_MERGE ajánlással (hint) •SELECT /*+ USE_MERGE(employees departments) */ * FROM employees, departments WHERE employees.department_id = departments.department_id;

Rendezések •Sort Unique •Sort Aggregate •Sort Group by •Sort Join •Sort Order by

Sort Unique •Ha DISTINCT kulcsszóval előírjuk az egyediséget, vagy valamilyen művelet számára biztosítani kell az értékek egyediségét. •Pl: select distinct from employees;

Sort Aggregate •Valójában nem igényel rendezést, csupán az összesítő műveleteket jelzi. •PL: select MAX(salary) from employees

Sort Group by •A rendezéshez el kell különíteni a sorokat különböző csoportokba. •PL: select COUNT(*),job_id from employees group by job_id

Sort Join •Sort-Merge Join összekapcsolási mód esetén használja ezt a műveletet, ha az alap adathalmazt rendezni kell.

Sort Order by •Akkor kerül végrehajtásra ez a művelet, ha az eredményhalmaz sorait rendezni kell, és ezt a rendezést nem lehet megoldani indexek felhasználásával. •PL: select * from employees order by hire_date

Statisztikák •Tábla statisztikák •Oszlop statisztikák •Index statisztikák •Rendszer statisztikák

Tábla statisztikák •Sorok száma (számosság – cardinality) •Blokkok száma •Átlagos sorhosszúság

Oszlop statisztikák •Egyedi értékek száma (egyediségi számosság – Number of distinct values (NDV) ) •NULL értékek száma az adott oszlopban •Eloszlás (hisztogram)

Index statisztikák •Levélblokkok száma •Szintek száma •Fürtözési tényező (Clustering factor)

Rendszer statisztikák •I/O hatékonysága és kihasználása •CPU hatékonysága és kihasználása •A lekérdezés optimalizálónak segítenek az adatok jobb lekérdezési tervek választásában.

Automatikus statisztika gyűjtése •Alapesetben engedélyezett a statisztikai adatok gyűjtése új adatbázis létrehozásakor, vagy régi adatbázis frissítésekor. •Leellenőrizhető: SELECT * FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME='GATHER_STATS_JOB'; •Letiltható: BEGIN DBMS_SCHEDULER.DISABLE('GATHER_S TATS_JOB'); END;