Advanced Databases Topic 2: query processing aspects query optimisation. Query optimisation. Van SQL naar XRA. Algebraïsche herschrijving



Vergelijkbare documenten
Datamodelleren en databases 2011

SQL Aantekeningen 3. Maarten de Rijke 22 mei 2003

[TOETS SQL INLEIDING]

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank

1. Inleiding Inleiding SQL Inleiding Database, databaseserver en databasetaal Het relationele model...

7. Het selecteren van gegevens

Databases (INFODB) 20 april 2010

Data Manipulatie. Query Talen. / Informatica

Databases - Inleiding

Relationele databanken

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

12. Meer dan één tabel gebruiken en sub-queries

Informatie Voor algemene vragen/opmerkingen omtrent de inhoud van deze site kunt u bellen of en met: Cargo Data Systems BV

Structured Query Language (SQL)

Les 11 : Basis SQL (deel2).

SQL. Datamodellering 2008

SQL. Wat is SQL? Geschiedenis SQL SQL DMO Datamodellering 2008

SQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p.

Introductie (relationele) databases

Databases en SQL Foundation (DBSQLF.NL)

Wie? Advanced Databases blok DB vs IR. Wat? Canonical application (DB) Canonical application (DB)

Inhoud. Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

Inleiding Databases en Data Base Management Systems Tabellen Wat is SQL?... 5

oefeningen TOP2000 antwoorden

SQL & Relationele datamodellen in interactieve media

Data Manipulation Language

Inhoud. Pagina 2 van 13

EXIN Databases en SQL Foundation

SQL / Systeemanalyse

11. Het selecteren van gegevens deel II

Zelftest SQL Workshop

Query SQL Boekje. Fredrik Hamer

Informatie & Databases

= > >= < <= BETWEEN IS NULL IS NOT NULL

Zelftest SQL Workshop

Functioneel programmeren

Tentamen Databases voor ica

Het juiste executieplan of de juiste statistieken. Bram van der Vos

Relationele databases

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

DATABANKEN GILLES CALLEBAUT

EXPLORING DB2 OPEN CURSOR IN DIT NUMMER: CLOSE CURSOR ABIS NIEUWSBRIEF VOOR DB2 PROFESSIONALS JAARGANG 10 - NUMMER 1, FEBRUARI 2016

Structured Query Language

Relationele Databases 2002/2003

Relationele Databases 2002/2003

Module 1 Programmeren

Les S-01: De basisbeginselen van SQL

Koppeling met een database

Informatie verwerking en databases RDBMS en tabellen... 8 SQL SELECT... 8 SQL WHERE SQL INSERT SQL UPDATE SQL DELETE...

Query-verwerking en optimalisatie

ISO Query By Example

Les 2 Eenvoudige queries

SQL: query taal met. woorden. ISO SQL: Structured Query Language. de SQL basis query structuur. voorbeeld: doel: intuitieve query taal

Data Warehouse Script Generator Doel

Excel Controller. Handleiding Excel Controller Wizard

TU Delft TENTAMEN DATABASES. Opgaven IN2105/IN oktober uur. Er zijn 6 opgaven. maximale score 100 punten

Gebruikers Handleiding

Het SQL Leerboek zevende editie De Relationele Algebra en Calculus

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

Dataconversie met Oracle Spatial

Hoofdstuk 2 Basiskennis Muistechnieken Windows Explorer

oefeningen eredivisie antwoorden

Les S-02: Meer geavanceerde SQL-instructies

TU Delft TENTAMEN DATABASES. Opgaven IN2105/IN januari uur. Er zijn 6 opgaven. maximale score 100 punten

Puzzelen met SQL: Fileleed

Database tuning in een notendop

Les 15 : updaten van gegevens in de database (deel2).

ISO SQL: Structured Query Language

Import via NatSync. Presentatie René Merx School voor de Toekomst

Online analytical processing

Voer de gegevens in in een tabel. Definieer de drie kolommen van de tabel en kies als kolomnamen groep, vooraf en achteraf.

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC

Zelftest DB2 for z/os basiscursus

Tentamen Informatica 6, 2IJ60,

9. Het wijzigen van gegevens

OLAP.

Ranking database queries. Ranking in IR. Classic ranking in IR. Ranking in IR. Ranking in IR: score. Advanced Databases

Sparse columns in SQL server 2008

Informatica. Staatsexamen HAVO Tijdvak 1 Woensdag 24 mei uur. College-examen schriftelijk. Opgavenboekje

Databank - Gevorderden 1

Versieperikelen. Bijlage C

werkcollege 6 - D&P9: Estimation Using a Single Sample

2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311

ContentSearch. Deep dive

Tentamen Databases voor ica

Puzzelen met SQL 38. De Muzieklijst, deel 2 PUZZELEN MET SQL

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site

6. Het maken van een database

1. * Database worden vaak gebruikt in Client-Server architectuur.

Handleiding Gebruik Dashboard. ProMISe 3

Hoofdstuk: 1 Principes van databases

TI1500 Web- en Databasetechnologie

Vragen hoofdstuk 1: Resultaat

SQL datadefinitietaal

PROGRAMMA Vak: informatica..

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober A. Snippe ICT Lyceum 1

Transcriptie:

Advanced Databases Topic 2: query processing aspects query optimisation Query optimisation Outline: Basisregels algebraïsche herschrijving Schattingen Queryplan-generatie 1 2 Algebraïsche herschrijving gebruik de cascading rule voor de selectie om de conjunctie op maat te knippen: σ P1,, Pn (E) = σ P1 ( (σ Pn (E)) ) push down selections waar mogelijk combineer Cartesian Products met selecties om deze als join te formuleren optimaliseer de joinvolgorde voeg projecties toe om de grootte van operanden te minimaliseren onderken mogelijkheden voor combineren operatoren (σ en π samen in één scan) en pipelining Syntax voor simplesql <Query> ::= <SFW> <Query> ::= (<Query>) <SFW> ::= SELECT <SelList> FROM <FromLis> WHERE <Cond> 3 4 Syntax voor simple SQL <Cond> ::= <Cond> AND <Cond> <Cond> ::= <Tuple> IN <Query> <Cond> ::= <Attr> = <Attr> <Cond> ::= <Attr> LIKE <Pattern> Voorbeeld: MovieStar (name, address, gender, birthdate) StarsIn (title, year, starname) <Tuple> ::= <Attr> 5 6 1

SELECT title FROM StarsIn WHERE starname IN ( SELECT name FROM MovieStar WHERE birthdate LIKE %1960 ) 7 8 Transformatie van <Query> in SFW parse tree naar XRA parse tree 1. Start met het cartesisch product van alle relaties in de <FromList> 2. Zet hierboven de selectie met <Condition> 3. Zet hierboven een projectie op de <SelList> 9 10 Complicatie: IN Complicatie: IN 11 12 2

SELECT DISTINCT m1.title, m1.year FROM StarsIn m1 WHERE m1.year 40 <= ( SELECT AVG(birthdate) FROM StarsIn m2, MovieStar s WHERE m2.starname = s.name AND AND m1.title = m2.title AND m1.year = m2.year ) 13 14 15 16 Groeperen van commutatieve en associatieve binaire operatoren Schattingen De keuze voor een bepaalde executiemethode wordt bepaald aan de hand van schattingen van de kosten. Deze worden bijgehouden door het DBMS (system catalog) Voor de base tables zijn allerlei statistieken voorhanden Voor tussentijdse resultaten zijn er methoden om deze gegevens te schatten 17 18 3

Schattingen Entries van de catalog ten behoeve van tabel R B(R): het aantal blocks dat R omvat T(R): het aantal tupels in R V(R.A): het aantal verschillende waarden van attribuut A in R Min(R.A): minimale waarde in kolom A Max(R.A): maximale waarde in kolom A S(R): size; breedte tupel in bytes Schattingen: projectie Catalog voor R := π A (R) T(R ) = V(R.A) = Catalog voor R := π AB (R) 19 20 Schattingen: selectie Catalog voor R := σ P (R) onderscheid: A = c, A <= c, A <> c T(R ) = V(R.A) = Schattingen: histogrammen Gedetailleerde info betreffende waarden in kolom A. Equal-width histogram frequenties gespecificeerd per interval van vaste grootte Equal-height histogram intervalgrootte is variabel om ruwweg dezelfde kolmhoogte te verkrijgen (percentielen) 21 Most-frequent-values individuele waarden gespecificeerd, met histogrammen voor de overige waarden 22 Schattingen: histogrammen Equal width histogram Schattingen: histogrammen Equal-height histogram 0% 20% 40% 60% 80% 100% leeftijd 0 15 31 49 72 110 23 24 4

Schattingen: histogrammen Onderhoud van histogrammen Compleet, periodiek Incrementeel aanpassing T(R) voor elke update schat T(R) aan de hand van # blocks in B-tree index Schattingen: join Catalog voor U := R met joinattribuut A T(U) = V(U.A) = V(U.B) = S 25 26 Nog meer schattingen union intersection difference duplicate elimination grouping Physical plan space Kan nogal groot zijn Case study: join ordering gangbare restrictie: left deep trees (zie links) 27 28 Join ordering Dynamic programming Greedy heuristic kies in elke stap de relatie die het kleinste tussenresultaat geeft Vuistregel bereken exacte oplossing tot n ~= 6 pas daarboven een heuristiek toe Dynamic programming De beste manier om R1, R2,, Rn te joinen: R1 join (de beste manier om R2, R3,, Rn te joinen) R2 join (de beste manier om R1, R3,, Rn te joinen). Rn join (de beste manier om R1, R2,, Rn-1 te joinen) 29 30 5

Dynamic programming: voorbeeld Dynamic programming: voorbeeld 31 32 Dynamic programming: voorbeeld Dynamic programming: voorbeeld 33 34 6