Side 1Copyright © 2007 JaKoFi. All rights reserved. DB2 Performance: Optimering af SQL læsninger mod DB2 med AllFusion Gen Jan Erik Jensen, JaKoFi.

Slides:



Advertisements
Lignende præsentationer
Tilføj hjælpelinjer: 1.Højreklik et sted i det grå område rundt om dette dias 2.Vælg "Gitter og hjælpelinjer" 3.Vælg "Vis hjælpelinjer på skærm"
Advertisements

SPBG.  Test driven development  Unit test frameworks  MOSS TDD  Mocking  Design patterns.
Indsæt nyt billede: Format: B 254 x 190,5 mm Efter indsættelse, højreklik på billedet og placér det bagerst. Delete det gamle foto Danish National Adaptation.
SPU-modellen (Struktureret ProgramUdvikling)
HA-Intro 2013 Præsentation af 24-timers case Gruppenr.: Holdnr.:
Head Project Management-gruppe. Stakeholder contracting & Gode rapporteringsformer.
Select one of the 3 title pages and delete the others. Please do not create new title pages by using the layouts Title 1 – 3 as these layouts do not contain.
FNI marts Dupline introduction. FNI marts Sensors, Switches, Relays, Valves, Motors Counters, Timers, Drives Dupline PLC's PC's, SCADA Prod.
1 Omstrukturering af Brønderslev-Dronninglund Vand og Varme 8. december 2006.
Titel og undertitel skal stå med store bogstaver (Versaler) og skal holdes indenfor de to vandrette grå linjer. Der kan frit vælges farver fra farvepaletterne.
E/R model Enhanced E/R-model (EE/R-model) Relationelle model Relationelle algebra Omformning fra E/R-model til relationelle model Tirsdag.
Forside Titel Navn, sted eller begivenhed, dato. CHALLENGES FOR THE BANKING SECTOR - IN THE AFTERMATH OF THE CRISIS Louise C. Mogensen Deputy Chief Executive.
Tekst starter uden punktopstilling For at få punkt- opstilling på teksten, brug forøg indrykning For at få venstre- stillet tekst uden punktopstilling,
Design definition  Den proces, som med forskellige teknik- ker definerer en enhed, en proces, eller et system i tilstrækkelige detaljer, således at det.
Arkitektur Embedded SQL Tema Persistens
SQL sortering og gruppering. RHS – IT A 2 SQL - sortering Hvis en forespørgsel returnerer mange rækker, kan det være bekvemt at sortere resultatet SQL.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
Self-Organizing Criticality. Definition of Innovation In an abstract, systems-theoretical approach, innovation can be understood as a critical event which.
Algoritmer og Datastrukturer 1 Greylisting Gerth Stølting Brodal.
Regnskab & økonomistyring - Lektion 15 HD 5. semester forår 2010 v/ Jens Godik Højen, April 2010.
Database Normalization without Mathmatics
Microsoft Solutions for Management Peter Colsted Direktør Enterprise & Partner Group Microsoft Danmark.
FEN Databaser/DBAdgang21 DB-adgang - Connectionless Connectionless DataAdapter DataSet.
Litteratursiden / forfattere / anmeldelser / analyser / lister / temaer / læseklubber / video / brugere Digital communication of performance literature.
NOEA/IT FEN - Databaser/Sikkerhed 1 Lektion 10 Sikkerhed og integritet Områder Autorisationsmatrix Realisering i SQL.
Agenda Informationer Skalaer Deskriptiv statistik Dagens øvelser
COSMOS GROUP A/S – MOVING PEOPLE AND PERFORMANCE member of Lidt om kommunikation.
Henrik Thomsen COO, Specialist People Foundation.
Overskrift 40/42 pkt, Maks 2 linjer Underoverskrift, 14/16 pkt For at vise hjælpelinjer: 1.Højreklik på slidet og vælg “Gitter og hjælpelinjer” 2.Kryds.
Linking international students and Danish businesses.
22/092VE/E00/RB1 Introduktion til SQL Datalogi 2VE E00 DIKU Forelæsninger 22/9 og 29/9.
Relationsdatabaser og SQL
Opsummering.
KLAR TIL NYE MULIGHEDER
Nyt tværfagligt innovations tilvalgskursus på DTU Diplom Vil du bruge din faglighed i tværdisciplinært samarbejde med ingeniørstuderende fra andre retninger?
Reliable Architecture Ved Henrik Bærbak Christensen Reflective Architectures Emne: reflective architecture overview 11 december 2009.
1 SQL2. 2 Funktioner der laver aggregerede beregninger Returnerer count() Antal rækker der opfylder bestemt betingelse min() Laveste værdi (eller null)
Copyright © 2014, SAS Institute Inc. All rights reserved. make connections share ideas be inspired Skjulte SQL-features Jakob Juul Bak Chefkonsulent, SAS.
1 XMLRelationel model og XMLNOEA / FEN 2007 Relationelle databaser og XML Overblik. –For detaljer se PQC: sqlOgXml.ppt og SqlServerOgXml.ppt RDB-struktur.
SQL Jesper Tørresø DAB1 E oktober Punkter for i dag. SQL baggrund. Relationel algebra. Brug af VS2005.
1 SQL2. 2 Funktioner der laver aggregerede beregninger Returnerer count() Antal rækker der opfylder bestemt betingelse min() Laveste værdi (eller null)
8.7 Security: Grant and revoke1 Sikkerhed 8.7 Security and User Authorization in SQL.
DATATYPER. For at tilpasse hvert felt i databasen til dets formål og dermed øge funktionalitet 1 bit er tilstrækkelig til at angive køn (0/1) men for.
Slide Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Algorithms for Query Processing and Optimization.
Metodeafsnit Projekt: Estimering af marked
Databaser, introduktion1 Kurset ”Databaser” Introduktion.
Januar 2003Databaser, introduktion1 Databaser, forår 2003 Introduktion.
SQL Jesper Tørresø DAB1 E September Punkter for i dag. SQL baggrund. Relationel algebra. SQL koncept –Vises ved brug af VS2008.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
SQL – Oracle Vigtige SQL sætninger Lektion 6 7. Semester.
OPERATIONEL ANALYSE AF WEBADFÆRD OAW – LEKTIONSGANG 11.
Database.
Database Some walk through. Database Design – Begreber 1 Database: En fælles samling af logiske relaterede data (informationer) DBMS (database management.
DB analyse og modellering Jesper Tørresø DAB1 F Februar 2008.
ANALYSE AF WEBADFÆRD - OAW OAW – LEKTIONSGANG 4. ANALYSE AF WEBADFÆRD - OAW SUMMARY, LECTURE 3 (Extended) Common Log File Format Host, Ident, Authuser,
Økonomisk status og udsigt Las Olsen. Hvad gik der galt? 2.
Omsætning af en model til en RDB Jesper Tørresø DAB1 F Marts 2008.
C O N T R O L L E R F O R U M Kompetenceudvikling og læring i Danske Bank ”The ultimate competitive advantage lies in an organization’s ability to learn.
Marianne Timm Farmakonom Adm. Direktør TJELLESEN MAX JENNE.
Database Some walk through lv/ Figures & some text from: © Pearson Education Limited 1995,
DB analyse og modellering
Illustrations from the book Project Management by Bjarne Kousholt All rights belongs to the Writer and Nyt Teknisk Forlag.
Modellering og data Nyt forløb.
AB295 Sexuality Education Expansion Bill
MySQL dat2sem2018Fall Modul 2 – uge 2.
Science Fair Research Paper
Dat2sem2019 Bornholm Modul 2 – uge 2
Præsentationens transcript:

Side 1Copyright © 2007 JaKoFi. All rights reserved. DB2 Performance: Optimering af SQL læsninger mod DB2 med AllFusion Gen Jan Erik Jensen, JaKoFi

Side 2Copyright © 2007 JaKoFi. All rights reserved. Formål med gennemgangen At give en forståelse for DB2’s virkemåde ved udførsel af læsninger for derved at forstå hvordan performance kan påvirkes positivt.

Side 3Copyright © 2007 JaKoFi. All rights reserved. Optimering af SQL læsninger mod DB2 Præsentationens indhold Muligheder for optimering ”Undlad” SQL'et Indekser Ændret datamodellering Gennemgang af teknikken bag tabeller og indekser Principperne bag DB2's valg af accessveje til dataene Indholdet af DB2's explaintabel Måleværktøjer til måling af DB2 performance Arbejdsprocessen ved performanceoptimering af DB2 Snydetricks

Side 4Copyright © 2007 JaKoFi. All rights reserved. Indholdet af et READ / SUMMARIZE EACH statement READ EACH entity entity SORTED ASCENDING entity attribute WHERE DESIRED entity attribute IS EQUAL TO local-view attribute AND DESIRED entity attribute IS EQUAL TO local-view attribute AND DESIRED entity is_related_to DESIRED entity SUMMARIZE EACH GROUP OF entity entity WITH THE SAME entity attribute PLACING entity attribute INTO local-view attribute PLACING GROUP count(OCCURRENCES) INTO local-view attribute WHERE DESIRED entity attribute IS EQUAL TO local-view attribute AND DESIRED entity attribute IS EQUAL TO local-view attribute AND DESIRED entity is_related_to DESIRED entity

Side 5Copyright © 2007 JaKoFi. All rights reserved. Indholdet af en SQL læsning SELECT kolonne, kolonne, … FROM tabel, tabel, … WHERE kolonne = :hostvariabel AND kolonne = :hostvariabel, … GROUP BY kolonne, kolonne, … HAVING … ORDER BY kolonne, kolonne, … OPTIMIZE FOR xxx ROWS Der angives hvad der ønskes læst – ikke hvordan det fysisk forventes hentet. <- Viewenes attributter <- Entiteternes tabeller <- Statementets where-kriterie <- Summarize’s ”with the same” <- Sorted by på read each <- Statementets optimize markering

Side 6Copyright © 2007 JaKoFi. All rights reserved. Eksempel på en forespørgsel Data: Kunder (kundenr, kundenavn, leveringsadresse (vejnavn, husnummer, postnummer, postdistrikt), faktureringsadresse) Ordrer (ordrenr, ordredato, leveringsdato, status (U = udestående, L = leveret), kundenr, ordretotal) Ønsket resultat: En liste med alle udestående ordrer for ordrer bestilt til levering i marts 2007 og bestilt af kunder med postnummer 1780 i deres leveringsadresse.

Side 7Copyright © 2007 JaKoFi. All rights reserved. Eksempel på en konkret SQL læsning SELECT kunde.kundenr, ordre.ordrenr, ordre.leveringsdato, ordre.ordretotal FROM ordre, kunde WHERE kunde.levering_postnr = 1780 AND kunde.kundenr = ordre.kundenr AND ordre.leveringsdato between ’ ’ and ’ ’ AND ordre.status = ’U’ ORDER BY kunde.kundenr, ordre.ordrenr DB2 vælger selv hvordan læsningen fysisk udføres og resultatet sammenstykkes.

Side 8Copyright © 2007 JaKoFi. All rights reserved. Indekser En sorteret liste af nogle udvalgte kolonner fra en tabel defineret i en bestemt rækkefølge og sorteret stigende eller faldende. Indekset giver en hurtig (indekseret) tilgang til dataene, hvis de benyttes i den rækkefølge de indgår i indekset. En tabel kan have mange indekser. DB2 vedligeholder automatisk indekserne når rækker indsættes, opdateres eller slettes fra en tabel.

Side 9Copyright © 2007 JaKoFi. All rights reserved. Eksempel på indekser til kunde og ordre eksemplet Kunde: 1: Kundenr 2: Kundenavn, levering_postnr Ordre: 1: Ordrenr 2: Kundenr, Ordrenr 3: Leveringsdato

Side 10Copyright © 2007 JaKoFi. All rights reserved. Eksempel på indekser på ordre tabellen OrdrenrRowid …… …… KundenrOrdrenrRowid ……… ……… Lev.datoRowid …… …… OrdrenrKundenrOrdredatoLev.datoStatus… ……………… U… ……………… Rowid 278 Tabellen Indekserne

Side 11Copyright © 2007 JaKoFi. All rights reserved. Fysisk lagring af data på ordre tabellen OrdrenrKundenrKundenavnLev.dato… …………… Hansen … …………… …………… …………… …………… …………… …………… …………… …………… Rowid Data Page 21 Tabellen Data Page 22 Data Page Tabellen er sorteret efter clusteringindekset

Side 12Copyright © 2007 JaKoFi. All rights reserved. Fysisk lagring af data på ordre indekset KundenrOrdrenrRowid ……… ……… ……… ……… ……… … Index Page KundenrOrdrenrRowid ……… ……… ……… ……… Index Page KundenrOrdrenrIndex Pg ……… … … ……… ……… ……… Index Page Indekser er lagret som en træstruktur (typisk med niveauer) Index Row

Side 13Copyright © 2007 JaKoFi. All rights reserved. Fysisk lagring af data på indekser og tabeller Index Page Index Page Index Page Index Page Index Page Index Page Index Page Index Page Index Page Index Page Index Page Index Page Index Page Index Page Data Page 4/32K Data Row Data Page 4/32K Data Row Data Page 4/32K Data Row Data Page 4/32K Data Row Clustering- indeks

Side 14Copyright © 2007 JaKoFi. All rights reserved. DB2’s valg af accessveje DB2 vælger accessvej ud fra: Indekserne på tabellerne som læses Reduktionsfaktoren for de enkelte kolonner i indekset Sorterings- eller grupperingsrækkefølgen i læsningen (hvis angivet) Antallet af rækker i tabellen (table space scan på små tabeller) Hvis DB2 kan nøjes med at læse indekset (indexonly), så gør den det Hvis der læses flere tabeller i læsningen, så sker det (oftest) en af gangen Reduktionsfaktoren for kolonner: Angiver mængden af forskellige værdier og dermed hvor meget angivelse af kolonnen forventeligt vil reducere den samlede mængde rækker fra tabellen med.

Side 15Copyright © 2007 JaKoFi. All rights reserved. Eksempel på DB2’s valg af accessveje SQL’et SELECT kunde.kundenr, ordre.ordrenr, ordre.leveringsdato, ordre.ordretotal FROM ordre, kunde WHERE kunde.levering_postnr = 1780 AND kunde.kundenr = ordre.kundenr AND ordre.leveringsdato between ’ ’ and ’ ’ AND ordre.status = ’U’ ORDER BY kunde.kundenr, ordre.ordrenr Indekserne Kunde: 1: Kundenr 2: Kundenavn, levering_postnr Ordre: 1: Ordrenr 2: Kundenr, Ordrenr 3: Leveringsdato DB2’s valg af indeks Ordre indeks nummer 3 er det eneste indeks, som giver en reduktion i mængden af læste records. For hver læst ordre (med status U) vil den tilhørende kunde kunne hentes via kunde indeks nummer 1 for at kontrollere leveringspostnummeret (1780). Resultatet skal efterfølgende sorteres.

Side 16Copyright © 2007 JaKoFi. All rights reserved. Mål for optimeringen af SQL læsningerne Reducer mængden af fysisk I/O (”getpages”) – både index pages og data pages. Reducer mængden af behandlede rækker Færre getpages giver mindre ventetid (på grund af fysiske læsninger og på grund af låste rækker) og dermed kortere svartid Færre behandlede rækker giver mindre CPU forbrug og dermed kortere svartid og billigere drift Begge dele giver større evne til at håndtere flere samtidige transaktioner og dermed færre deadlocks og timeouts

Side 17Copyright © 2007 JaKoFi. All rights reserved. Indhold af DB2’s explain-tabel For hver DBRM/Package og hvert SQL statement findes information om: De enkelte trin i læsningen Hvilke indeks der blev anvendt (hvis nogen) Hvordan tabellen/indekset blev læst Om der blev udført sortering i læsningen Explain-tabellen får sit indhold af DB2’s Optimizer ved Bind eller Rebind

Side 18Copyright © 2007 JaKoFi. All rights reserved. Udtræk af information fra DB2’s explain-tabel SQL til udtræk fra explain-tabellen (PLAN_TABLE): SELECT * FROM ENVP.PLAN_TABLE PTA WHERE PROGNAME LIKE 'KUNDE%' AND BIND_TIME = ( SELECT MAX(BIND_TIME) FROM PROD.PLAN_TABLE PTB WHERE PTB.PROGNAME = PTA.PROGNAME ) ORDER BY PROGNAME, QUERYNO, TIMESTAMP, QBLOCKNO, PLANNO, MIXOPSEQ

Side 19Copyright © 2007 JaKoFi. All rights reserved. Eksempel på indhold af DB2’s explain-tabel Gennemgang af regnearket med udtræk fra explain-tabellen Eksempel på udtræk fra explain-tabellen

Side 20Copyright © 2007 JaKoFi. All rights reserved. Måleværktøjer - Detector, Strobe eller Omegamon Kan typisk give her-og-nu information om DB2 performance og ressourceforbrug Præsenterer blandt andet DB2’s egne performancemålinger Giver et rigtig godt indtryk af, hvor problemerne findes Giver information om den fysiske tilgang til dataene Eksempel på output fra Detector

Side 21Copyright © 2007 JaKoFi. All rights reserved. Arbejdsprocessen ved optimering Find en konkret DBRM/Package som ser ud til at have problemer (via måleværktøjer som Detector, Strobe eller Omegamon) Kig på accessveje ifølge explain-tabellen Undersøg indekserne på de læste tabeller Kig på SQL’et og vurder om DB2’s valg af accessvej ser fornuftig ud Vurder om: SQL’et kan ændres (eventuelt splittes op eller på anden måde forenkles) eller eventuelt er fejlbehæftet DB2 burde vælge andre indekser og eventuelt skal forsøges tvunget dertil (med ændret SQL) Der mangler eller er defineret forkerte indekser på tabellen Der eventuelt er behov for ændret datamodellering

Side 22Copyright © 2007 JaKoFi. All rights reserved. Arbejdsprocessen ved nyudvikling/redesign Foretag datamodellering af dataene (nogenlunde på 3. normalform) Lav analyse af den forventede access til dataene Foretag denormalisering af data (men kun hvis behovet er åbenlyst på designtidspunktet) Design indekserne ud fra: Analysen af den forventede access Krav til dataintegritet (typisk entydighed på den brugervendte nøgle) Krav på baggrund af RI (indekser på fremmednøgler) Behov for at kunne joine mellem tabeller Behovet for at kunne udsøge rækker fra tabellen (til søgefunktioner i dialogen) Hold løbende øje med at der findes indekser, som understøtter læsningerne i det SQL, som efterfølgende laves.

Side 23Copyright © 2007 JaKoFi. All rights reserved. Snydetricks til at gennemtvinge ændret access READ EACH entity entity SORTED ASCENDING entity attribute WHERE entity attribute + 0 IS EQUAL TO local-view attribute AND concat(entity attribute,””) IS EQUAL TO local-view attribute AND entity is_related_to entity READ EACH entity entity SORTED ASCENDING entity attribute WHERE (entity attribute IS EQUAL TO local-view attribute OR 0 = 1) AND entity attribute IS EQUAL TO local-view attribute AND entity is_related_to entity Metode (numeriske felter) + 0 DAYS (datoer) Concat (tekstfelter) Metode 2 Tilføj OR 0 = 1 for at undgå brug af indeks

Side 24Copyright © 2007 JaKoFi. All rights reserved. Den samlede værktøjskasse Måleværktøj: Detector, Strobe eller Omegamon Analyseværktøj: Explain-tabellen Teoriapparatet: DB2’s valg af dataaccess og reduktion af mængden af getpages

Side 25Copyright © 2007 JaKoFi. All rights reserved. Spørgsmål? Jeg kan kontaktes via: