Query optimization MICHAEL I

Slides:



Advertisements
Lignende præsentationer
Hej.
Advertisements

Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal.
Datastrukturer og Collections Oversigt og forskel imellem Jave og.net Collections library Collection interfaces ArrayList IList interface Hashtable Hashtable.
Array vs. ArrayList. Arrays Et array er en struktureret metode til at gemme flere værdier af den samme datatype. Data’en i et array ligger op ad hinanden.
Q UERY P ROCESSING & O PTIMIZATION Database Systems (Fourth Edition )
Regnskab & økonomistyring - Lektion 15 HD 5. semester forår 2010 v/ Jens Godik Højen, April 2010.
GP12, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 12 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi.
NOEA/IT - FEN1 Typeparametisering/Genericity Generics i.NET 2 og C#
Arrays ● Arrangere erklærede ens datatyper ● Giver mulighed for indeksering med tal ● Valgfri størrelse ved oprettelse ● Er integreret i sproget/compileren.
Datastrukturer og Collections Rasmus D. Lehrmann DM
Begreber og Redskaber 5. Collections i Java 1.2 Framework: samling af datastrukturer og algoritmer som generelt værktøj. En ramme til at arbejde med søgning.
Forelæsning 3.1 Collections Javas for-each løkke
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
1. Database-systemer, introduktion
FEN KbP/seminar2: design11 Kontraktbaseret programmering Seminar 2 Klassedesign – grundprincipper Eksempler: Stack Dictionary.
Algoritmer og Datastrukturer 1
Slide Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Algorithms for Query Processing and Optimization.
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper: arrays, stakke, køer,
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
FENNOEA IT - Databaser/SQL-Eval1 SQL: Opsamling Om SELECT Vurdering af SQL.
8.5 JDBC1 JDBC 8.5 Java Database Connectivity. 8.5 JDBC2 JDBC introduktion, 393 JDBC er ikke en forkortelse for –Java Database Connectivity Sun har defineret.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Blå gruppe: Søren, Alexander, Torben, Lasse. De 4 vigtige items: - Singelton - Override clone judiciously - Use interfaces only to define type - Prefer.
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
Forelæsning 7.1 – repetition
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering9B.1 Fletning.
Variabler, klassevariabler, identitet og lighed, collections
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Kari Rye Schougaard, Ph.d.-stud. Værktøjer og Teknikker, 2006 A A R H U S U N I V E R S I T E T DATALOGISK INSTITUT Java på 20 minutter (eller lidt mere)
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.
Interfaces – hvorfor, hvad og hvordan?.  Michael E. Caspersen 2003IOOPInterfaces.2 Oversigt Interfaces, hvorfor –Separering af specifikation (interface)
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Elementære Datastrukturer [CLRS, kapitel 10] Gerth Stølting Brodal Aarhus Universitet.
DAIMIIntroducerende objektorienteret programmeringfletning.1 Fletning.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere.
Ændr 2. linje i overskriften til AU Passata Light AARHUS UNIVERSITET AU CS CHALLENGE MICHAEL I. SCHWARTZBACH KRISTOFFER JUST ANDERSEN INSTITUT FOR DATALOGI.
Ændr 2. linje i overskriften til AU Passata Light AARHUS UNIVERSITET AU ARBITRARY PRECISION MICHAEL I. SCHWARTZBACH KRISTOFFER JUST ANDERSEN INSTITUT FOR.
Stavekontrol i Word. Klik på fanen ”Filer”, Klik på ”Indstillinger” Klik på ”Korrektur”. Opsætning kan se således ud. Opsætning af stavekontrol i Word.
Solution Makers A/S – Gruppe 4 Lars Wolter Nils Martinsen Rasmus Seye Tobias Kjeldsen 1.
VI elsker programmering
Forelæsning Uge 6 – Mandag
Algoritmer og Datastrukturer 1 Hashing [CLRS, kapitel ]
Don’t be afraid of the advanced editor
1.08 Test.
Dynamisk Rang & Interval Træer [CLRS, kapitel 14]
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Fremlæggelse af 1. deltagelsespligtigtopgave
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Dokumentation.
Velkommen til B klassen
Dokumentation.
Programmering.
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Dynamisk Rang & Interval Træer [CLRS, kapitel 14]
Præsentationens transcript:

Query optimization MICHAEL I Query optimization MICHAEL I. Schwartzbach Kristoffer just andersen Institut for datalogi

Collection Classes Matematiske strukturer som standard klasser i Java Basale mængder: int, String Set<S>: endelige delmængder af S: 2 Map<S,T>: endelige funktioner fra S til T: S T List<S>: endelige sekvenser af S: S* class C{S s,T t}: kartesisk ptodukt af S og T: S×T Alle sædvanelige operationer er tilgængelige S

Abstrakt vs konkret Abstrakte collection klasser har konkrete implementationer Map: HashMap, LinkedHashMap, … Set: HashSet, TreeSet, EnumSet, … List:; ArrayList, LinkedList, … Gør forskellige delmængder af operationer effektive

datastrukturer En datastruktur er: en sammensætning af matematiske strukturer en nøje udvalgt samling af operationer en specielt effektiv implementation Søgetræ: 2 , insert, member, delete, size Priotitetskø: 2 , insert, deletemin, empty Stak: S*, push, pop, empty Union-Find: 2 , singleton, union, find S S 2 S

prototyper Udstrakt brug af collection klasser kan give: hurtigt byggede implementationer ikke nødvendigvis særligt effektive Query databasen: tabel: (String String)* direktiv (query): 2 × (String (String ×String ×String)) String

Size matters Query: 300 linjer kode parser, fortolker, engine (select, project, join) RASMUS: 20,000 linjer kode MySQL; 1,800,000 linjer kode

optimering Databaser, fortolkere og compilere udfører kode men programmøren har næppe skrevet den bedste version… Derfor bruger de mange kræfter på optimering; laver en analyse af koden omskriver den til en mere effektiv version garanterer, at den giver samme resultat (sundhed)

Optimizere i praksis gcc –o3 bruger næsten al tiden på optimering mest lokale forbedringer og kortslutning af kontrolflow ikke nye algoritmer og datastrukturer giver typisk op til 50% forbedring af køretiden Effekten på databaser er vilkårligt stor forskellen på om queries overhovedet kører eller ej involverer automatisk valg af algoritmer og datastrukturer

Hvor gode er compilere? /* naive */ for (i = 0; i < N; i++) { a[i] = a[i] * 2000; a[i] = a[i] / 10000; } /* expert */ b = a; *b = *b * 2000; *b = *b / 10000; b++;

Bedre end dig! -o1 -o2 loop level sparc mips alpha naive 20.5 21.6 7.9 for (i = 0; i < N; i++) { a[i] = a[i] * 2000; a[i] = a[i] / 10000; } /* expert */ b = a; *b = *b * 2000; *b = *b / 10000; b++; loop level sparc mips alpha naive 20.5 21.6 7.9 -o1 8.8 12.3 3.3 -o2 11.2 3.0 expert 19.5 17.6 7.6 12.5 15.4 4.1 10.7 12.9 3.9

Query optimering En optimizer er aldrig helt optimal Man kan altid fange lidt flere specialtilfælde Masser af tommelfingerregler: project og select før join fjern søjler, der ikke bruges i svaret kopier select til begge sider af join …