1 / 30

Hogyan működik?

Hogyan működik?. if ( fseek(f,poz) ) { fread(f,buf,BUFSIZE); for (i=0; i<buf->cnt;i++) { pp = buf->base + i*SZ; …. DBMS. SELECT SUM(r.d*t.e), r.v FROM rendeles r, termek t WHERE r.termek = t.tid AND t.szin = 'PIROS' GROUP BY r.varos. Data System. SQL parancs.

mei
Download Presentation

Hogyan működik?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hogyan működik? if ( fseek(f,poz) ) { fread(f,buf,BUFSIZE); for (i=0; i<buf->cnt;i++) { pp = buf->base + i*SZ; …. DBMS SELECT SUM(r.d*t.e), r.v FROM rendeles r, termek t WHERE r.termek = t.tid AND t.szin = 'PIROS' GROUP BY r.varos

  2. Data System SQL parancs szematikai ellenőrzés induló QOG algebrai optimalizálás javitott QOG konverzió fizikai szintre induló QEP költség optimalizálás javitott QEP DB QEP végrehajtás Storage System

  3. A szavak nyelvtani szerepének meghatározása 1 Dave a take a stress … BCNF

  4. Minta feladat : bináris törtszám -101.11_ - 0 0 0 1 2 3 1 + 1 OK 1 . _ _ FGRAF.DBF (k-statusz, esemeny, v-statusz)

  5. parameter sor ajel = 0 sh = len(sor) for i = 1 to sh c = substr(sor,i,1) tb[1] = .f. select vstatusz from fgraf where kstatusz = m.ajel and esemeny == c into array tb if type('tb[1]') <> 'N' messagebox("HIBA") return endif ajel = tb[1] endfor messagebox("OK")

  6. Operátorok és operandusok meghatározása 2 o.megy, a.fiz Osztaly () avg()oid SELECT o.megv, a.fiz FROM osztaly o, (SELECTAVG(fiz), oid FROM dolgozok GROUP BY oid) a WHERE o.oid = a.oid AND a.fiz > 50000;  o.oid = a.oid AND a.fiz > 50000

  7. Végrehajtási sorrend meghatározása 3 ( 3 * (4 + 2) + (2 * 3)) + 6 + Végrehajtási gráf generálása + 6 * * 3 + 3 2 2 4

  8. Minta :algebrai kifejezés + × × 3 2 + 2 2 4 parameter gykod ? ite (gykod) function ite parameter gykod ... FA.DBF (id, tipus, ertek, bal, jobb) [1,D,3, , , ] [3,O,×,1,2]

  9. dimension tb[1] tb[1] = .f. select * from fa where id = m.gykod into array tb if type("tb[1,1]") <> "N" messagebox("HIBA") return .f. endif if tb[1,2] = "O" bert = ite (tb[1,4]) jert = ite (tb[1,5]) pa = " ertek = " + bert + " " + tb[1,3] + " " + jert ? pa &pa return str(ertek) else return tb[1,3] endif

  10. Induló QOG meghatározása 4 QOG: algebrai műveletek megadása a gráf csomópontjaiban oid, fiz oid=oid and fiz > 50000  oidoid, avg(fiz)    osztaly o dolgozo d

  11. QOG optimalizálása 5 A QOG optimalizálás alapelvei: - szelekciók felbontása elemi szelekciókra - szelekciók lefelé mozgatása - projekciók lefelé mozgatása - összetartozó elemek összevonása      A B A B

  12. QOG átalakítási szabályok 5 (1) R S S R (2) (R S) T  R (S T) (3) A (B(R)) A(R) , ha A B (4) F(G(R)) G(F(R)) (5) F(G(R)) GF(R)) (6) A(G(R)) G(A(R)) , ha G lefedi A-t (7) G(R S) G(R) S , ha G csak A-t érinti (8) AB(R S) A(R)B(S) (9) A(G(R)) A(G(AB(R))) , ha G a B-re vonatkozik

  13. Minta feladat: SELECT A1,A2,B4,C3 FROM A,B,C WHERE A.A1 = B.B3 AND B.B4 = C.C3 AND A.A2 = X 1

  14. 2 3

  15. 4

  16. A logikai terv után meg kell határozni a tényleges adatkezelő lépéseket QEP : Query Execution Plan QEP QOG nem kölcsönösen egyértelmű kapcsolat

  17. Adatbázis kezelő műveletek optimalizálása A QEP csomópontjaiban már nevesített eljárásokat adunk meg, melyek mögött implementált rutinok állnak, melyek meghívhatók, végrehajthatók. A gráf élei irányítottak, s egy A csomópontból akkor mutat él a B csomópontba, ha a B művelet felhasználja az A művelet eredményét. Nested loop eredmény Table access ROWID Optimalizálás: - szabály alapú - költség alapú Index search Table scan A B

  18. SELECT … INTERSECT SELECT .. Alternatívák: - módszerek - csoportosítás - optimalizálás

  19. Oracle aranyszabályai ROWID cluster join concatenated index column index sub-index table scan

  20. Adatbázis kezelő műveletek optimalizálása Rekord elérési költségek ROWID alapú egy rekord c = 1 Clustering index egy kulcsérték c = R/P/I Clustering index érték tartomány c = R/P/2 normál index egy kulcsérték c = R/I normál index érték tartomány c = R/2 szekvencia egy kulcsérték c > R/P ROWID = rekord pozíciót adja meg file:page:record értéke változhat

  21. JOIN algoritmusok (ekvi-join) for x in T1 { for y in T2 { if (x.id = y.id) {….} Nested loop (N1×N2)

  22. Sorted Merge join algoritmus i1 = 1; i2 = 1 Do while i1 < eof1 and i2 < eof2 if (r1.id < r2.id) i1=i1+1 endif if (r1.id > r2.id) i2=i2+1 endif if (r1.id = r2.id) is1 = i1 do while r1.id = rs1.id is1=is1+1; is2 = i2 do while r2.id = rs2.id is2 = is2 + 1 enddo enddo ... A két tábla rekordjait kulcs szerint rendezetten bejárja, s összehasonlítja az aktuális rekordokat C > = N1+N2 + (rendezés) 9 6 6 4 3 3 3 2 1 > 3 2

  23. Hash join algoritmus A rekordok blokkokba rendelődnek, s összehasonlítás csak az azonos blokkban lévő rekordok között szükséges C = N1*N2/B végrehajtás fázisai: szétosztási illesztési h(x) = x mod 3 9 6 6 2 4 3 3 1 4 3 2 1 3 6 túlcsordulás 3 3 hash tábla 6 9

  24. Adatbázis kezelő műveletek optimalizálása Oracle SQL utasítások ALTER SESSION SET OPTIMIZER_GOAL=mód; mód = RULE, FIRST_ROW, ALL_ROWS EXPLAIN PLAN FOR SQL-utasítás EXPLAIN PLAN FOR SELECT nev, rsz, tip FROM auto, ember WHERE auto.tul=ember.id AND auto.szin='KEK'; ID PARENTID OPERATION OPTIONS OBJECT 0 SELECT ... 1 0 NESTED LOOP 2 1 TABLE ACCESS FULL AUTO 3 1 TABLE ACCESS BY ROWID EMBER 4 3 INDEX UNIQ. SCAN SYS_CO..

  25. Adatbázis kezelő műveletek optimalizálása A TPC tesztek (benchmark) Független, egységesített hatékonyság és funkció ellenőrző teszt a különböző jellegű adatbáziskezelő rendszerekhez első általánosabban elfogadott teszt: DebitCredit, 1985 követelmények: - egzakt művelet specifikáció - rugalmas teljesítmény mérési módszer - a valós környezet teljesebb bevonása - ellenőrizhető eredmények TPC: Transaction Processing Performance Council non-profit szervezet a DBMS teljesítmény tesztek (benchmark) karbantartására és ellenőrzésére, kb 26 rendes tagja van

  26. Adatbázis kezelő műveletek optimalizálása TPC-A teszt egy banki automata nyilvántartást szimulál on-line teszt, 1988 tranzakció elemei: számla módosítás, automata módosítás, fiók módosítás, naplózás teljesítés feltétele: a tranzakciók 90% 2 sec-on belül lefut x tps terhelése: x*100000 számla, x*10 automata, x*1 részleg mérik az egy teljesítmény egységre eső beruházási költséget is A1 A2

  27. Adatbázis kezelő műveletek optimalizálása A TPC tesztek során ellenőrzik a DBMS működés helyességét is. ACID elvek betartása - abortálják a tranzakciókat - a rész és a nagyobb egységek összesítő adatait ellenőrzi - párhuzamosan módosítják ugyanazon számlát - rendszer összeomlások kipróbálása Kb. 330 TPC-A teszteredményt hitelesítettek A teljesítmények 10 tps és 3700 tps között helyezkednek el

  28. Adatbázis kezelő műveletek optimalizálása TPC-C teszt egy rendelés nyilvántartást szimulál OLTP, on-line teszt, 1992 tranzakció elemei: rendelés, fizetés, készlet nyilvántartása komplex műveletek, teljesítmény egysége: tpm, öt különböző tranzakció fut párhuzamosan 1 tpm-hez 10 raktár, 30000 ügyfél, 100000 termék tartozik Évente kb. 50 új eredmény (10000-720000 tpm) GépDBMSOStpm$/tpm HP ProLiantSQLServer2000Windows200070922015 IBM xSeriesSQLServer2000Windows2000688228 23 Fujitsu PP200SymphowareSun Solaris45581829 IBM xSeriesIBM DB2Windows200044081619 IBM eServerOracle 9iIBM AIX40325518

  29. Adatbázis kezelő műveletek optimalizálása TPC-H teszt egy rendelés nyilvántartást szimulál OLAP, ad-hoc, on-line teszt, 1998 Több különböző elemzési tranzakció: piac kutatás, vevő menedzsment, profit elemzés,… komplex műveletek, teljesítmény egysége: Qph, 22 paraméteres lekérdezés, 8 kapcsolódó tábla minimum 100 GB adatmennyiség 1000 GB-os teszt GépDBMSOSQph$/qph HP9000 Oracle 9 HP UX25805213 SUN FireOracle 9iSun Solaris18802227 TeradataTeradataMP-RAS18542638

  30. Adatbázis kezelő műveletek optimalizálása TPC-W teszt egy elektronikus bolt vásárlói felületét szimulálja e-commerce, ad-hoc, WEB-es on-line teszt, 1999 Három alap tranzakció: vásárlás, rendelés, kínálat böngészés a WEB-en komplex műveletek, teljesítmény egysége: WIPS 100000 termékre GépDBMSOSWebserverWIPS$/wips Unisys ES700SQLServer2000Windows2000MS IS 10439106 Dell PowerEdgeSQLServer2000Windows2000MS IS975835 IBM xSeries 430IBM DB2IBM ptxMS IS7554137 DBMS WEB server API WEB böngésző

More Related