Your SlideShare is downloading. ×
  • Like
Matlanek 2007 sql_optimalizace
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Matlanek 2007 sql_optimalizace

  • 218 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
218
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Vaše jistota na trhu IT Optimalizace SQL Jiří Kiml, ICZ a.s. 20/09/2007, Prahawww.i.cz
  • 2. Vaše jistota na trhu IT Agenda ► Úvod ► Obecná moudra (pravidla) ► Oracle specifické ► Informix specifické ► Pokročilé techniky optimalizace ► Závěr ► Otázky + diskuzewww.i.cz
  • 3. Vaše jistota na trhu IT Obecná moudra ► Optimalizace je draháwww.i.cz
  • 4. Vaše jistota na trhu IT Co může být špatně ► Datové typy ► Db design ► Pomalé disky ► Pomalá síť ► Špatné/chybějící statistiky ► Chybějící indexy ► Špatné sql příkazy ► … hloupí uživatelé …www.i.cz
  • 5. Vaše jistota na trhu IT Co si někteří neuvědomují ► Jen jeden index při join a sort ► Některé konstrukce vylučují použití indexu ►NOT in a NOT EXIST ►Like ‘%A%’ matches ‘*[a|b]*’ ►!= ► I temporary tabulky mohou mít indexy ► Funkční indexy ► Cost based optimalizátor se rozhoduje na základě statistikwww.i.cz
  • 6. Vaše jistota na trhu IT Optimalizátor ► Cost based ► Vypočte cenu dotazu: cena IO + W* cena CPU ► Potřebuje statistiky ►Max, min, počet řádek ►Distribuce dat ► Hinty/directivy ►Proč je (ne)používat ►{+EXPLAIN, AVOID_EXECUTE} ►/*+dynamic_sampling …*/ ► /*+ GO_FASTER */www.i.cz
  • 7. Vaše jistota na trhu IT Jak měřit čas ► Problémy ►Jiní uživatelé ►Databázová cache ►Dlouhé trvání dotazu ►Zámky ► Cost odhady optimalizátoru ► Vzorek dat (ladit v testovacím prostředí) ► Critéria čeho chceme dosáhnout (produkční prostředí) ► Logování sql příkazůwww.i.cz
  • 8. Vaše jistota na trhu IT Agenda ► Úvod ► Obecná moudra (pravidla) ► Oracle specifické ► Informix specifické ► Pokročilé techniky optimalizace ► Závěr ► Otázky + diskuzewww.i.cz
  • 9. Vaše jistota na trhu IT Oracle specifické ► Temporary tabulky ►Divná implementace ►Session/transaction specifické ►Definice je persistentní ► Pozor na: Select from select ► Plán dotazu ►Sql plus ►Toad ►SQL Developer ► SQL Access/Tuning advisorswww.i.cz
  • 10. Vaše jistota na trhu IT Ukázky ► Reálný příklad ► SQL Developer ►create index trn.ii_tr_adresa on trn.tr_adresa(jmeno); ►select * from trn.tr_adresa where jmeno = ICZ; ► Enterprise Manager – SQL Advisorswww.i.cz
  • 11. Vaše jistota na trhu IT Analytické funkce ► SELECT empno, deptno, COUNT(*) OVER (PARTITION BY deptno) DEPT_COUNT FROM emp WHERE deptno IN (20, 30); ► EMPNO DEPTNO DEPT_COUNT ► ---------- ---------- ---------- ► 7369 20 5 ► 7566 20 5 ► 7788 20 5 ► 7902 20 5 ► 7876 20 5 ► 7499 30 6 ► 7900 30 6 ► 7844 30 6 ► 7698 30 6 ► 7654 30 6 ► 7521 30 6www.i.cz
  • 12. Vaše jistota na trhu IT Agenda ► Úvod ► Obecná moudra (pravidla) ► Oracle specifické ► Informix specifické ► Pokročilé techniky optimalizace ► Závěr ► Otázky + diskuzewww.i.cz
  • 13. Vaše jistota na trhu IT Informix specifické ► Temporary tabulky WITH NO LOG ► Select from select v IDS 11 ;-( ► Plán dotazu ►Set explain on ►Na serveru, v home, v aktualním adresáři ►{+EXPLAIN, AVOID_EXECUTE} ► Statistiky ►Update statistic [Low|medium|high] ►Před IDS 11 – nutný update po vytvoření indexuwww.i.cz
  • 14. Vaše jistota na trhu IT Tabulka Catalog► INFO - catalog: Columns Indexes Privileges References Status ...► Display column names and data types for a table.► ----------------------- stores_demo@plch_tcp ----------------------► Column name Type Nulls► catalog_num serial no► stock_num smallint no► manu_code char(3) no► cat_descr text yes► cat_picture byte yes► cat_advert varchar(255) yes www.i.cz
  • 15. Vaše jistota na trhu IT Indexy Catalogu► INFO - catalog: Columns Indexes Privileges References Status ...► Display information about indexes for the columns in a table.► ----------------------- stores_demo@plch_tcp ---► Index_name Owner Type/Clstr Access_Method Columns► 108_21 kiml unique/No btree catalog_num► 108_22 kiml dupls/No btree stock_num► manu_codewww.i.cz
  • 16. Vaše jistota na trhu IT Where manu_code = ‘HRO’► QUERY:► ------► select * from catalog where manu_code = HRO► Estimated Cost: 6► Estimated # of Rows Returned: 5► 1) kiml.catalog: SEQUENTIAL SCAN► Filters: kiml.catalog.manu_code = HROwww.i.cz
  • 17. Vaše jistota na trhu IT create index► create index ii_catalog_manu_code on catalog(manu_code);QUERY:------select * from catalog where manu_code = HROEstimated Cost: 6Estimated # of Rows Returned: 5 1) kiml.catalog: SEQUENTIAL SCAN Filters: kiml.catalog.manu_code = HRO www.i.cz
  • 18. Vaše jistota na trhu IT Update statistics ► update statistics for table catalog; QUERY: ------ select * from catalog where manu_code = HRO Estimated Cost: 1 Estimated # of Rows Returned: 7 1) kiml.catalog: INDEX PATH (1) Index Keys: manu_code (Serial, fragments: ALL) Lower Index Filter: kiml.catalog.manu_code = HRO ► Kolik řádků dotaz opravu vrátil ?www.i.cz
  • 19. Vaše jistota na trhu IT Update statistics high► Update statistics high for catalog QUERY: ------ select * from catalog where manu_code = HRO Estimated Cost: 2 Estimated # of Rows Returned: 12 1) kiml.catalog: INDEX PATH (1) Index Keys: manu_code (Serial, fragments: ALL) Lower Index Filter: kiml.catalog.manu_code = HRO ► V IDS 11 už to bude jinakwww.i.cz
  • 20. Vaše jistota na trhu IT Agenda ► Úvod ► Obecná moudra (pravidla) ► Oracle specifické ► Informix specifické ► Pokročilé techniky optimalizace ► Závěr ► Otázky + diskuzewww.i.cz
  • 21. Vaše jistota na trhu IT Pokročilé technikywww.i.cz
  • 22. Vaše jistota na trhu IT Pokročilé techniky ► Cluster tabulky ► Tabulky v DB cache ► Paralelní dotazy ► Velikost bloku ► Speciální tabulky ► Speciální indexy ► GO_FASTER ►…www.i.cz
  • 23. Vaše jistota na trhu IT Závěr ► Oracle a Informix mají svá specifika ►Spousta věcí funguje analogicky ► Performance profiling v Jave je OK, ale …www.i.cz
  • 24. Vaše jistota na trhu IT Děkuji za vaši pozornost Jiří Kiml Jiri.Kiml@i.cz +420 737 280 021 ICZ a.s. Divize Zdravotnictví www.i.czwww.i.cz