Successfully reported this slideshow.

Matlanek 2007 sql_optimalizace

442 views

Published on

  • Be the first to comment

  • Be the first to like this

Matlanek 2007 sql_optimalizace

  1. 1. Vaše jistota na trhu IT Optimalizace SQL Jiří Kiml, ICZ a.s. 20/09/2007, Prahawww.i.cz
  2. 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. 3. Vaše jistota na trhu IT Obecná moudra ► Optimalizace je draháwww.i.cz
  4. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 21. Vaše jistota na trhu IT Pokročilé technikywww.i.cz
  22. 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. 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. 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

×