ANFRAGEOPTIMIERUNG IN POSTGRESQL
|
|
- Irmgard Dresdner
- vor 6 Jahren
- Abrufe
Transkript
1 ANFRAGEOPTIMIERUNG IN POSTGRESQL Friedrich-Schiller-Universität Jena Mai 2013
2 REFERENTIN Diplom-Informatikerin Open Source Aktivität seit 1996 Expertin für Datenbanken sowie Lokalisierung / Globalisierung 2
3 SPIELREGELN Zwischenfragen sind Willkommen Keine Individualberatung Folien haben keine alleinstehende Aussagekraft 3
4 WAS IST EINE DATENBANK? 4
5 POSTGRESQL DATENBANK Datenbank Statistiken Schema Zugang Privilegien 5
6 POSTGRESQL DATENBANK 6
7 SQL Data Definition Language CREATE, ALTER, DROP Data Modification Language INSERT, UPDATE, DELETE Data Query Language Data Control Language GRANT, REVOKE Transaction Control Language START TRANSACTION, SAVEPOINT, COMMIT, ROLLBACK SELECT 7
8 EIGENTÜMER Meins! Meins! Meins! Meins! Meins! Meins! Trigger Funktion Tabelle Schema Datenbank 8
9 DATENTYPEN Smallint, Integer, Bigint Numeric Real, Double Precision Char, Varchar, Text Date, Time / Timestamp with / without Timezone, Interval Boolean, Array, Bytea, Inet, Cidr,... 9
10 CONSTRAINTS NOT NULL + UNIQUE = PRIMARY KEY FOREIGN KEY DEFAULT CHECK 10
11 SPITZNAMEN 11
12 EINE PAGE 12
13 EINE DATEI 13
14 INSERT 14
15 DELETE 15
16 INSERT NACH DELETE 16
17 VACUUM 17
18 INSERT NACH VACUUM 18
19 UPDATE 19
20 B-BAUM 20
21 B-BAUM 21
22 B-BAUM 22
23 B-BAUM 23
24 B-BAUM 24
25 B-BAUM 25
26 FILLFACTOR CREATE INDEX... WITH (FILLFACTOR=n) ALTER INDEX... SET (FILLFACTOR=n) 10 < n <
27 INDEX REPARATUR DROP INDEX name CREATE INDEX name ON...; REINDEX name; CREATE INDEX CONCURRENTLY name_neu ON...; DROP INDEX name_alt; ALTER INDEX name_neu RENAME TO name_alt; 27
28 PLANER EXPLAIN - Planung EXPLAIN ANALYZE - Planung und Ausführung 28
29 EXPLAIN knolle=# EXPLAIN SELECT s.stadt, k.verstoss, SUM(kv.betrag) AS gesamt FROM stadt AS s JOIN knoellchenvergabe AS kv ON s.kennzeichen=kv.stadt JOIN knoellchen AS k ON kv.verstoss=k.verstoss GROUP BY s.stadt, k.verstoss ORDER BY gesamt DESC LIMIT 10; QUERY PLAN Limit (cost= rows=10 width=69) -> Sort (cost= rows=25245 width=69) Sort Key: (sum(kv.betrag)) -> GroupAggregate (cost= rows=25245 width=69) -> Sort (cost= rows=25245 width=69) Sort Key: s.stadt, k.verstoss -> Merge Join (cost= rows=25245 width=69) Merge Cond: (k.verstoss = kv.verstoss) -> Sort (cost= rows=1020 width=32) Sort Key: k.verstoss -> Seq Scan on knoellchen k (cost= rows=1020 width=32) -> Sort (cost= rows=4950 width=67) Sort Key: kv.verstoss -> Hash Join (cost= rows=4950 width=67) Hash Cond: ((s.kennzeichen)::text = (kv.stadt)::text) -> Seq Scan on stadt s (cost= rows=990 width=48) -> Hash (cost= rows=1000 width=37) -> Seq Scan on knoellchenvergabe kv (cost= rows=1000 width=37) 29
30 EXPLAIN cost = zu erwartende Zeit für die Operation; von_ms... bis_ms row = zu erwartende Anzahl gefundener Zeilen width = zu erwartende Zeilenbreite in Byte 30
31 EXPLAIN ANALYZE knolle=# EXPLAIN ANALYZE SELECT s.stadt, k.verstoss, sum(kv.betrag) as gesamt FROM stadt as s JOIN knoellchenvergabe as kv ON s.kennzeichen=kv.stadt JOIN knoellchen as k ON kv.verstoss=k.verstoss GROUP BY s.stadt, k.verstoss ORDER BY gesamt desc LIMIT 10; QUERY PLAN Limit (cost= rows=10 width=69) (actual time= rows=10 loops=1) -> Sort (cost= rows=25245 width=69) (actual time= rows=10 loops=1) Sort Key: (sum(kv.betrag)) Sort Method: top-n heapsort Memory: 25kB -> GroupAggregate (cost= rows=25245 width=69) (actual time= rows=256 loops=1) -> Sort (cost= rows=25245 width=69) (actual time= rows=1000 loops=1) Sort Key: s.stadt, k.verstoss Sort Method: quicksort Memory: 125kB -> Merge Join (cost= rows=25245 width=69) (actual time= rows=1000 loops=1) Merge Cond: (k.verstoss = kv.verstoss) -> Sort (cost= rows=1020 width=32) (actual time= rows=13 loops=1) Sort Key: k.verstoss Sort Method: quicksort Memory: 25kB -> Seq Scan on knoellchen k (cost= rows=1020 width=32) (actual time= rows=13 loops=1) -> Sort (cost= rows=4950 width=67) (actual time= rows=1000 loops=1) Sort Key: kv.verstoss Sort Method: quicksort Memory: 125kB -> Hash Join (cost= rows=4950 width=67) (actual time= rows=1000 loops=1) Hash Cond: ((s.kennzeichen)::text = (kv.stadt)::text) -> Seq Scan on stadt s (cost= rows=990 width=48) (actual time= rows=21 loops=1) -> Hash (cost= rows=1000 width=37) (actual time= rows=1000 loops=1) Buckets: 1024 Batches: 1 Memory Usage: 69kB -> Seq Scan on knoellchenvergabe kv (cost= rows=1000 width=37) (actual time= rows=1000 loops=1) Total runtime: ms 31
32 ACTUAL time = für die Operation gebrauchte Zeit; von_ms... bis_ms row = Anzahl gefundener Zeilen loops = Wie häufig die Operation durchgeführt wurde 32
33 PGADMIN III 33
34 ANALYSE (cost= rows=990 width=48) (actual time= rows=21 loops=1) ANALYZE oder STATISTIC TARGET (actual time= rows=1000 loops=651) Logik überdenken, Umgestaltung der Anfrage, ggf. CTE (Common Table Expression) (actual time= rows=1000 loops=1) Logik überdenken, Umgestaltung der Anfrage, ggf. Indizierung 34
35 EXPLAIN.DEPESZ.COM 35 Hubert Lubaczewski, Nickname: depesz
36 EXPLAIN.DEPESZ.COM 36
37 STATISTIK Stichproben postgresql.conf: default_statistic_target = 100 ALTER TABLE... ALTER COLUMN... SET STATISTIC wert; 37
38 ANALYZE SQL-Befehl PostgreSQL erlaubt auch britisch: ANALYSE Häufigkeitsanalyse anhand Stichproben Füllt Statistik-Tabellen wie pg_class autovacuum enthält autoanalyze 38
39 PLAN VOR ANALYZE knolle=# EXPLAIN ANALYZE SELECT s.stadt, k.verstoss, sum(kv.betrag) as gesamt FROM stadt as s JOIN knoellchenvergabe as kv ON s.kennzeichen=kv.stadt JOIN knoellchen as k ON kv.verstoss=k.verstoss GROUP BY s.stadt, k.verstoss ORDER BY gesamt desc LIMIT 10; QUERY PLAN Limit (cost= rows=10 width=69) (actual time= rows=10 loops=1) -> Sort (cost= rows=25245 width=69) (actual time= rows=10 loops=1) Sort Key: (sum(kv.betrag)) Sort Method: top-n heapsort Memory: 25kB -> GroupAggregate (cost= rows=25245 width=69) (actual time= rows=256 loops=1) -> Sort (cost= rows=25245 width=69) (actual time= rows=1000 loops=1) Sort Key: s.stadt, k.verstoss Sort Method: quicksort Memory: 125kB -> Merge Join (cost= rows=25245 width=69) (actual time= rows=1000 loops=1) Merge Cond: (k.verstoss = kv.verstoss) -> Sort (cost= rows=1020 width=32) (actual time= rows=13 loops=1) Sort Key: k.verstoss Sort Method: quicksort Memory: 25kB -> Seq Scan on knoellchen k (cost= rows=1020 width=32) (actual time= rows=13 loops=1) -> Sort (cost= rows=4950 width=67) (actual time= rows=1000 loops=1) Sort Key: kv.verstoss Sort Method: quicksort Memory: 125kB -> Hash Join (cost= rows=4950 width=67) (actual time= rows=1000 loops=1) Hash Cond: ((s.kennzeichen)::text = (kv.stadt)::text) -> Seq Scan on stadt s (cost= rows=990 width=48) (actual time= rows=21 loops=1) -> Hash (cost= rows=1000 width=37) (actual time= rows=1000 loops=1) Buckets: 1024 Batches: 1 Memory Usage: 69kB -> Seq Scan on knoellchenvergabe kv (cost= rows=1000 width=37) (actual time= rows=1000 loops=1) Total runtime: ms 39
40 PLAN NACH ANALYZE knolle=# EXPLAIN ANALYZE SELECT s.stadt, k.verstoss, sum(kv.betrag) as gesamt FROM stadt as s JOIN knoellchenvergabe as kv ON s.kennzeichen=kv.stadt JOIN knoellchen as k ON kv.verstoss=k.verstoss GROUP BY s.stadt, k.verstoss ORDER BY gesamt desc LIMIT 10; QUERY PLAN Limit (cost= rows=10 width=44) (actual time= rows=10 loops=1) -> Sort (cost= rows=273 width=44) (actual time= rows=10 loops=1) Sort Key: (sum(kv.betrag)) Sort Method: top-n heapsort Memory: 25kB -> HashAggregate (cost= rows=273 width=44) (actual time= rows=256 loops=1) -> Hash Join (cost= rows=1000 width=44) (actual time= rows=1000 loops=1) Hash Cond: (kv.verstoss = k.verstoss) -> Hash Join (cost= rows=1000 width=44) (actual time= rows=1000 loops=1) Hash Cond: ((kv.stadt)::text = (s.kennzeichen)::text) -> Seq Scan on knoellchenvergabe kv (cost= rows=1000 width=37) (actual time= rows=1000 loops=1) -> Hash (cost= rows=21 width=12) (actual time= rows=21 loops=1) Buckets: 1024 Batches: 1 Memory Usage: 1kB -> Seq Scan on stadt s (cost= rows=21 width=12) (actual time= rows=21 loops=1) -> Hash (cost= rows=13 width=30) (actual time= rows=13 loops=1) Buckets: 1024 Batches: 1 Memory Usage: 1kB -> Seq Scan on knoellchen k (cost= rows=13 width=30) (actual time= rows=13 loops=1) Total runtime: ms 40
41 SEQ SCAN Sychronize Tabelle Page 1 Page 2 Page 3... Page n Seqscan Page 1 Page 2 Page 3... Page n 41
42 INDEXSCAN Wurzel B-Baum Blatt 1 Blatt 2 Blatt 3... Blatt n Tabelle Page 1 Page 2 Page 3... Page n 42
43 BITMAP-INDEX-SCAN B-Baum Tabelle Wurzel Blatt 1 Blatt 2 Blatt 3... Blatt n Page 1 Page 2 Page 3... Page n 43
44 GESCHWINDIGKEIT Seqscan Antwortzeit Bitmapscan Indexscan Tabellengröße 44
45 JOINS A B SELECT * FROM A JOIN B ON A.id=B.id; SELECT * FROM A, B WHERE A.id=B.id; OUTER JOINS INNER JOIN A B A B A B LEFT JOIN RIGHT JOIN FULL JOIN SELECT * FROM A LEFT JOIN B ON A.id=B.id SELECT * FROM A RIGHT JOIN B ON B.id=A.id SELECT * FROM A FULL JOIN B ON A.id=B.id A B A B A B WHERE B.id IS NULL WHERE A.id IS NULL 45 WHERE A.id IS NULL OR B.id is NULL
46 CROSS JOINS Jedes Element mit jedem Element... Tabelle A: (1,a), (3,b), (5,c) Tabelle B: (1,x), (2,y), (3,z) knolle=# SELECT * FROM a CROSS JOIN b; i_a wert_a i_b wert_b a 1 x 1 a 2 y 1 a 3 z 3 b 1 x 3 b 2 y 3 b 3 z 5 c 1 x 5 c 2 y 5 c 3 z (9 rows) 46
47 WAS IST SCHNELLER? SELECT * FROM a WHERE a.id NOT IN (SELECT id FROM b); SELECT a.* FROM a LEFT JOIN b ON a.id=b.id WHERE b.id IS NULL; 47
48 NESTED LOOP Index A Tabelle A Index B Tabelle B Blatt 1 Page 1 Blatt 1 Page 1 Wurzel Blatt 2 Page 2 Wurzel Blatt 2 Page 2 Blatt 3 Page 3 Blatt 3 Page Blatt n Page n Blatt n Page n 48
49 MERGE JOIN Voraussetzung: Sortierte Datensätze 1. Datensatz 2. Datensatz 49
50 HASH JOIN 1. Datensatz Hash Lookup 2. Datensatz Hash wird erzeugt und zum Joinen genutzt Verknüpfung von großer und kleiner Tabelle Hoher work_mem Notfall-Mechanismus schützt vor Speicherüberlauf 50
51 ANALYSE enable_seqscan enable_indexscan enable bitmapscan enable_nestloop enable_mergejoin enable_hashjoin enable_hashagg enable_material enable_sort Per Session zur Query-Analyse SET variabel=off; 51
52 CTE Common Table Expression WITH einnahmen AS ( SELECT stadt, sum(betrag) AS gesamt FROM knoellchenvergabe GROUP BY stadt ), besten AS ( SELECT stadt FROM einnahmen WHERE gesamt > (SELECT avg(gesamt) FROM einnahmen) ) SELECT stadt, verstoss, sum(anzahl) AS menge, sum(betrag) AS summe FROM knoellchenvergabe WHERE stadt in (SELECT stadt FROM besten) GROUP BY stadt, verstoss; 52
53 CTE Common Table Expression WITH RECURSIVE meine(n) AS ( VALUES(1) UNION ALL SELECT n+1 FROM meine WHERE n < 100 ) SELECT SUM(n) FROM meine; 53
54 LOCKING Auf Tuple / Zeilenebene Alle dürfen Lesen, Schreiben wird blockiert Alleiniges Zugangsrecht Auf Tabellenebene Namen historisch gewachsen und verwirrend Automatische Auflösung von Deadlocks Manuelles LOCK TABLE normaler Weise nicht nötig 54
55 TABELLENEBENE SELECT SELECT FOR UPDATE, SELECT FOR SHARE INSERT, UPDATE, DELETE VACUUM, ANALYZE, CREATE INDEX CONCURRENTLY, ALTER TABLE CREATE INDEX ALTER TABLE, DROP TABLE, TRUNCATE, REINDEX, CLUSTER, VACUUM FULL SELECT X SELECT FOR UPDATE, SELECT FOR SHARE X INSERT, UPDATE, DELETE X X VACUUM, ANALYZE, CREATE INDEX CONCURRENTLY, ALTER TABLE X X X CREATE INDEX X X X ALTER TABLE, DROP TABLE, TRUNCATE, REINDEX, CLUSTER, VACUUM FULL X X X X X X 55
56 PARTITIONIERUNG Elterntabelle Kind_A Kind_B Kind_C Kind_D 56
57 DANKE FÜR DIE AUFMERKSAMKEIT 57 Open Source Software
Explain verstehen. Hans-Jürgen Schönig.
Explain verstehen Zielsetzung EXPLAIN... Was versucht uns PostgreSQL zu sagen? Wie kann diese Information genutzt werden? Wie erkenne ich Probleme? Abfragen in PostgreSQL Mehrstufige Ausführung Parser:
MehrTuning von PostGIS mit Read- Only-Daten von OpenStreetMap
Tuning von PostGIS mit Read- Only-Daten von OpenStreetMap Prof. Stefan Keller (Fach-)Hochschule für Technik Rapperswil (bei Zürich) 11.11.2011 PGConf.DE - Stefan Keller 1 Was ist OpenStreetMap? Wikipedia
MehrPerformance Probleme aufspüren
Performance Probleme aufspüren Oberhausen, 2013 Hans-Jürgen Schönig Gründe für schlechte Performance 1. Dumme Anfragen - das passiert häufiger als man denkt 2. Suboptimale PostgreSQL Parameter 3. Schlechte
MehrIndexing und Performance Tuning
Indexing und Performance Tuning Cybertec Schönig & Schönig GmbH Hans-Jürgen Schönig PostgreSQL Indexing - Jeder hat schon einmal ein Telefonbuch Benutzt - Jeder hat schon einmal Suchen durchgeführt CREATE
MehrPostgreSQL Wartungsstrategien
Jens Wilke PGConf.DE 11. November 2011 Wartungsstrategien Warum Wartung? Autovacuum Tuning Repairtools Warum Wartung? Statistiken pg statistic ANALYZE MVCC (Multiversion Concurrency Control) Wiederverwendung
MehrOracle 9i Einführung Performance Tuning
Kurs Oracle 9i Einführung Performance Tuning Teil 3 Der Optimizer Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 1. auf Tabellen 2. 3. Optimizer 4. Optimizer RBO 5. Optimizer CBO 6.
MehrAnwendungsentwicklung Datenbanken SQL. Stefan Goebel
Anwendungsentwicklung Datenbanken SQL Stefan Goebel SQL Structured Query Language strukturierte Abfragesprache von ANSI und ISO standardisiert deklarativ bedeutet was statt wie SQL beschreibt, welche Daten
MehrAbfragen (Queries, Subqueries)
Abfragen (Queries, Subqueries) Grundstruktur einer SQL-Abfrage (reine Projektion) SELECT [DISTINCT] {* Spaltenname [[AS] Aliasname ] Ausdruck} * ; Beispiele 1. Auswahl aller Spalten SELECT * ; 2. Auswahl
MehrSQL und MySQL. Kristian Köhntopp
SQL und MySQL Kristian Köhntopp Wieso SQL? Datenbanken seit den frühen 1950er Jahren: Hierarchische Datenbanken Netzwerkdatenbanken Relationale Datenbanken = SQL Relational? 10 9 8 7 6 f(y) := y = x r(y)
MehrEine Reise durch den PostgreSQL Optimizer
11. November 2011 Am Anfang steht SQL SQL = Structured Query Language Eigentlich ein Eigenname Standardisiert, stetige Weiterentwicklung (SQL99, SQL 2003, SQL 2008, SQL/MED) Deklarativ, Beschreibend KEIN(!)
Mehr5.8 Bibliotheken für PostgreSQL
5.8 Bibliotheken für PostgreSQL Haskell/WASH: Modul Dbconnect PHP: pqsql-funktionen Java/JSP: JDBC Perl: DBI database interface modul Vorläufige Version 80 c 2004 Peter Thiemann, Matthias Neubauer 5.9
MehrSQL. Allgemeines CREATE TABLE DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT
Allgemeines DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT Gute Tabellen sollen nun in eine DB auf den Rechner. Verwenden dazu DBMS ite. Verwenden Datenbanksprache (structured query language).
Mehr3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7
1 Data Definition Language (DDL)... 2 1.1 Tabellen erstellen... 2 1.1.1 Datentyp...... 2 1.1.2 Zusätze.... 2 1.2 Tabellen löschen... 2 1.3 Tabellen ändern (Spalten hinzufügen)... 2 1.4 Tabellen ändern
MehrISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de
08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren
MehrOracle 10g Einführung
Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes
MehrSeminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.
Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu
MehrÜbung PL/SQL Trigger Lösungen
Übung PL/SQL Trigger Lösungen 1) Gebe das aktuelle Datum aus. Wofür steht dual? Ändere das Datum für Deine aktuelle Session auf das Format Jahr (4 Stellen) Monat (2 Stellen) Tag (2 Stellen)[Leerzeichen]Stunde
MehrÜbung Datenbanken in der Praxis. Datenmodifikation mit SQL
Datenmodifikation mit SQL Folie 45 SQL - Datenmodifikation Einfügen INSERT INTO Relation [(Attribut, Attribut,...)] VALUES (Wert, Wert,...) INSERT INTO Relation [(Attribut, Attribut,...)] SFW-Anfrage Ändern
MehrÜbersicht der wichtigsten MySQL-Befehle
Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit
MehrSQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99
SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:
MehrEinführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten
Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem
MehrSQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar
Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-
MehrNachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)
Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der
MehrBibliografische Informationen digitalisiert durch http://d-nb.info/995021198
Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT INTO) 95 5 Daten abfragen (SELECT) 99 6 Daten aus mehreren Tabellen abfragen (JOIN) 143 7 Unterabfragen
MehrACCESS SQL ACCESS SQL
ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache
Mehrdbis Praktikum DBS I SQL Teil 2
SQL Teil 2 Übersicht Fortgeschrittene SQL-Konstrukte GROUP BY HAVING UNION / INTERSECT / EXCEPT SOME / ALL / ANY IN / EXISTS CREATE TABLE INSERT / UPDATE / DELETE 2 SELECT Syntax SELECT FROM [WHERE [GROUP
MehrIntroduction to Data and Knowledge Engineering. 6. Übung SQL
Introduction to Data and Knowledge Engineering 6. Übung SQL Aufgabe 6.1 Datenbank-Schema Buch PK FK Autor PK FK ISBN Titel Preis x ID Vorname Nachname x BuchAutor ISBN ID PK x x FK Buch.ISBN Autor.ID FB
MehrPostgreSQL auf vielen CPUs. Hans-Jürgen Schönig Hans-Jürgen Schönig
PostgreSQL auf vielen CPUs Ansätze zur Skalierung PostgreSQL auf einer CPU Traditionell läuft eine Query auf nur einer CPU Historisch gesehen war das kein Problem Mittlerweile ist das ein großes Problem
MehrDatenbanksysteme 2013
Datenbanksysteme 2013 Kapitel 8: Datenintegrität Vorlesung vom 14.05.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Datenintegrität Statische Bedingung (jeder Zustand) Dynamische
MehrSQL structured query language
Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query
MehrWiederholung VU Datenmodellierung
Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester
MehrPostgreSQL Ein Überblick
26. August 2007 Agenda Neue Funktionen im Bereich SQL, XML und Volltextsuche Geschwindigkeitsverbesserungen Neue Erweiterungen (contrib) XML (1) Neuer Datentyp xml ( well-formedness ) Viele Funktionen
MehrManagement of Information Systems. Tutorat: Session 3 Einführung in SQL
Management of Information Systems Tutorat: Session 3 Einführung in SQL 2 Setup 1. XAMPP-Console starten in C:\xampp\ 1. Apache starten bis erscheint 2. MySQL starten bis erscheint 3. An den Rechnern im
MehrDATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER
DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.
MehrEinstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index!
1/40 PHP-User-Group Stuttgart 14.01.2009 Warum Datenbanken einen Hals bekommen und was sich dagegen tun lässt. Tuning und Performancesteigerung ohne zusätzliche Hardware. Ein. Loblied auf den Tabellen-Index!
MehrSQL (Structured Query Language) Schemata Datentypen
2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente
MehrCassandra Query Language (CQL)
Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für
MehrOracle Database 12c Was Sie immer schon über Indexe wissen wollten
Oracle Database 12c Was Sie immer schon über Indexe wissen wollten Marco Mischke, 08.09.2015 DOAG Regionaltreffen B* Indexe - Aufbau 0-Level Index A-F G-Z 1-Level Index A-F G-Z 2-Level Index A-F G-M N-Z
MehrDieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.
Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,
MehrRelationales Datenbanksystem Oracle
Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information
MehrSQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software
SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4
MehrSQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.
SQL Lehr- und Forschungseinheit Datenbanken und Informationssysteme Ziele Grundlagen von SQL Beziehung zur relationalen Algebra SELECT, FROM, WHERE Joins ORDER BY Aggregatfunktionen Lehr- und Forschungseinheit
MehrAuf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13
Auf einen Blick Vorwort... 13 Teil 1 Vorbereitung Kapitel 1 Einleitung... 17 Kapitel 2 SQL der Standard relationaler Datenbanken... 21 Kapitel 3 Die Beispieldatenbanken... 39 Teil 2 Abfrage und Bearbeitung
Mehr6. Datendefinition in SQL
6. Datendefinition in SQL Datendefinition Schema, Datentypen, Domains Erzeugen von Tabellen (CREATE TABLE) Schemaevolution: Ändern/Löschen von Tabellen Sichtkonzept (Views) CREATE VIEW / DROP VIEW Problemfälle
MehrAuf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13
Auf einen Blick Vorwort 13 Teil 1 Vorbereitung Kapitel 1 Einleitung 17 Kapitel 2 SQL - der Standard relationaler Datenbanken 21 Kapitel 3 Die Beispieldatenbanken 39 Teil 2 Abfrage und Bearbeitung Kapitel
MehrKonstante Relationen
Konstante Relationen values-syntax erzeugt konstante Relation values ( [, Konstante] * )[, ( [, Konstante] * )]* Beispiel values (1, eins ), (2, zwei ), (3, drei ); Resultat ist eine
MehrOracle 9i Einführung Performance Tuning
Kurs Oracle 9i Einführung Performance Tuning Teil 6 Locks & Latches Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 1. Einführung Locks & Latches 2. Locks (Sperren) 3. Modi & Levels
MehrInhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15
Vorwort..................................................... 13 Kapitel 1 Einleitung.......................................... 15 Kapitel 2 SQL der Standard relationaler Datenbanken... 19 2.1 Die Geschichte................................
MehrDie Anweisung create table
SQL-Datendefinition Die Anweisung create table create table basisrelationenname ( spaltenname 1 wertebereich 1 [not null],... spaltenname k wertebereich k [not null]) Wirkung dieses Kommandos ist sowohl
Mehr4. Datenbanksprache SQL
4. Datenbanksprache SQL Standard-Sprache für das Arbeiten mit relationalen Datenbanken: Structured Query Language Datendefinition: Anlegen, Ändern und Löschen von Datenbankstrukturen Datenmanipulation:
MehrTag 4 Inhaltsverzeichnis
Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik
MehrPostgreSQL. Susanne Ebrecht, Bernd Helmle. 24. Juni PostgreSQL Workshop
PostgreSQL Susanne Ebrecht, Bernd Helmle PostgreSQL Workshop 24. Juni 2006 Vorwort Referenzielle Integrität Views Contraints Serverseitige Funktionen Trigger Transaktionen Rules MVCC Anhang Inhalt PostgreSQL
MehrSQL-Vertiefung. VL Datenbanksysteme. Ingo Feinerer
SQL-Vertiefung VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Gliederung Einführung SQL-Programmteile
Mehr7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2
5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken
MehrMySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.
MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt
MehrMicrosoft Access 2010 SQL nutzen
Microsoft Access 2010 SQL nutzen Welche Bestellungen hat Kunde x aufgegeben? Welche Kunden haben noch nie bestellt? Wer hat welche Bestellungen von welchen Kunden aufgenommen? S(tructured)Q(uery)L(anguage)
MehrDatenmanagement I SoSe 2006 Aufgabenblatt 4
Datenmanagement I SoSe 2006 Aufgabenblatt 4 June 11, 2009 Versuchen Sie, einige der Anfragen zu formulieren (ab Punkt 6), die im Tutorium stehen, das hier zu finden ist: http://wwwiti.cs.uni-magdeburg.de/iti_db/lehre/dm/tut/tutorium.html.
MehrWeb Technologien Klassische Datenbanken am Beispiel von MySQL
Web Technologien Klassische Datenbanken am Beispiel von MySQL Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Department of Law and Economics WS 2011/2012 Wednesdays, 8:00
MehrGliederung. 1) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren
Gliederung ) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren ) Speicherplatz-Zuordnung und -Verwaltung.) Tabellenspeicherung:
Mehr6. Datendefinition in SQL
6. Datendefinition in SQL Datendefinition Schema, Datentypen, Domains Erzeugen von Tabellen (CREATE TABLE) Schemaevolution: Ändern/Löschen von Tabellen Sichtkonzept (Views) CREATE VIEW / DROP VIEW Problemfälle
MehrPostgreSQL unter Debian Linux
Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...
MehrOracle Old Features. Vortrag für die DOAG-Konferenz Uwe M. Küchler, Valentia GmbH
Oracle Old Features Vortrag für die DOAG-Konferenz 2011 17.11.2011 Uwe M. Küchler, Valentia GmbH Zur Person Generation C=64 Seit über 25 Jahren in der IT tätig 1997-2000 bei Oracle Seither durchgehend
MehrWeb-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme
Handout zur Unit Web-Technologien SQL 1 Prof. Dr. rer. nat. Nane Kratzke Praktische Informatik und betriebliche Informationssysteme Raum: 17-0.10 Tel.: 0451 300 5549 Email: nane.kratzke@fh-luebeck.de (Praktische
MehrPostgreSQL optimieren
CLT 2010 13.-14.03.2010 Web: http://andreas.scherbaum.la/ E-Mail: andreas[at]scherbaum.biz PGP: 9F67 73D3 43AA B30E CA8F 56E5 3002 8D24 4813 B5FE 13.-14.03.2010 Was ist PostgreSQL? Relationale Datenbank
MehrU 8 SQL. = Structured Query Language (heute auch Standard Query Language) ALLGEMEIN:
U 8 SQL = Structured Query Language (heute auch Standard Query Language) ALLGEMEIN: - Abfragesprache für relationale Datenbanken, die plattformübergreifend verwendet wird - Vereinfachte Verwendung über
MehrSQL-Vertiefung. VU Datenbanksysteme. Reinhard Pichler
SQL-Vertiefung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester 2015/16 Gliederung
Mehr6. Datendefinition und Zugriffskontrolle
6. Datendefinition und Zugriffskontrolle in SQL Datendefinition Schema, Datentypen, Domains Erzeugen von Tabellen (CREATE TABLE) Schemaevolution: Ändern/Löschen von Tabellen Sichtkonzept (Views) Zugriffskontrolle/Autorisierung:
MehrDatenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin
Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,
Mehr7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2
5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken
MehrSQL-Anweisungen. SELECT (SQL Data Query Language)
SQL-Anweisungen SELECT (SQL Data Query Language) SELECT * SELECT * FROM "meine Tabelle"; SELECT feldname1, feldname2 SELECT feldname1, feldname2 FROM meinetabelle ORDER BY feldname2, feldname1 DESC; WHERE
MehrSQL. Fortgeschrittene Konzepte Auszug
SQL Fortgeschrittene Konzepte Auszug Levels SQL92 Unterteilung in 3 Levels Entry Level (i.w. SQL89) wird von nahezu allen DBS Herstellern unterstützt Intermediate Level Full Level SQL DML 2-2 SQL92 behebt
MehrDatenbanken Implementierungstechniken SS2015
Hochschule für Technik, Wirtschaft und Kultur Leipzig Leipzig University of Applied Sciences Parallele DBMS Datenbanken Implementierungstechniken SS2015 Alexander Müller Fakultät Informatik, Mathematik
MehrTag 2 Inhaltsverzeichnis
Tag 2 Inhaltsverzeichnis Relationales Modell Relation und Schema Umsetzung ER-Modell --> relationales Schema DB Schema: Empfehlungen Typen von Abfragesprachen SQL Teil 1 Ziel und Geschichte Daten- und
MehrFunktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement
Funktion definieren Gibt Summe der Gehälter zurück Aufruf in einem SQL-Statement Dr. Christian Senger Einführung PL/SQL 1 Procedures & Transaktionen CREATE OR REPLACE PROCEDURE write_log ( log_code IN
MehrInhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15
Vorwort 13 Kapitel 1 Einleitung 15 Kapitel 2 SQL-der Standard relationaler Datenbanken... 19 2.1 Die Geschichte 19 2.2 Die Bestandteile 20 2.3 Die Verarbeitung einer SQL-Anweisung 22 2.4 Die Struktur von
MehrInhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung
Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,
MehrSQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47
SQL-Sprachvielfalt DML Data Manipulation Language: Daten einfügen, ändern und löschen DQL Data Query Language: Daten abfragen DDL Data Definition Language: Tabellen und andere Strukturelemente erzeugen,
MehrEinführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)
Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data
MehrSQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)
SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro
MehrSQL Optimizer und SQL Performance
SQL Optimizer und SQL Performance Schlüsselworte SQL, Optimizer, Explain Plan, SQL Trace Marco Mischke Robotron Datenbank Software GmbH Dresden Einleitung Dieser Vortrag beschäftigt sich mit grundlegenden
MehrMarcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press
Marcus Throll, Oliver Bartosch Einstieg in SQL Verstehen, einsetzen, nachschlagen Galileo Press Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT
MehrViews in SQL. 2 Anlegen und Verwenden von Views 2
Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig
MehrWS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #5. SQL (Teil 3)
Vorlesung #5 SQL (Teil 3) Fahrplan Besprechung der Übungsaufgaben Rekursion Rekursion in SQL-92 Rekursion in DBMS- Dialekten (Oracle und DB2) Views (Sichten) - gespeicherte Abfragen Gewährleistung der
MehrPostgreSQL in großen Installationen
PostgreSQL in großen Installationen Cybertec Schönig & Schönig GmbH Hans-Jürgen Schönig Wieso PostgreSQL? - Die fortschrittlichste Open Source Database - Lizenzpolitik: wirkliche Freiheit - Stabilität,
MehrFakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. Metadaten
Fakultät für Informatik & Wirtschaftsinformatik Metadaten Metadaten sind Daten über Daten Data-Dictionary speichert Informationen über die Struktur der Daten, z.b.: Tabellen, Spalten, Datentypen Primär-
MehrOracle native json Support. Erste Schritte
Oracle native json Support Erste Schritte 1 Ausgangslage Als erster Schritt erstellen wir eine Tabelle, die wir für den weiteren Verlauf brauchen werden. Die Felder Id, Created und Username sind normale
MehrVerbunde (Joins) und mengentheoretische Operationen in SQL
Verbunde (Joins) und mengentheoretische Operationen in SQL Ein Verbund (Join) verbindet zwei Tabellen Typischerweise wird die Verbindung durch Attribute hergestellt, die in beiden Tabellen existieren Mengentheoretische
MehrDatenbanken. Zusammenfassung. Datenbanksysteme
Zusammenfassung Datenbanksysteme Christian Moser Seite 1 vom 7 12.09.2002 Wichtige Begriffe Attribut Assoziation API Atomares Attribut Datenbasis DBMS Datenunabhängigkeit Datenbankmodell DDL DML DCL ER-Diagramm
MehrPostgreSQL - Troubleshooting
24. August 2008 Agenda 1 Installation 2 Administration 3 Entwicklung 4 Backup Installation (1) Installationspfade, Tablespaces und Mountpoints bestimmen RAID-Level und LVM Separates WAL-Laufwerk? # initdb
Mehr5. Datendefinition in SQL
Datendefinition 5. Datendefinition in SQL Schema, Datentypen, Domains Erzeugen von Tabellen (CREATE TABLE) Schemaevolution: Ändern/Löschen von Tabellen Sichtkonzept (Views) CREATE VIEW / DROP VIEW Problemfälle
MehrVerbunde (Joins) und mengentheoretische Operationen in SQL
Verbunde (Joins) und mengentheoretische Operationen in SQL Ein Verbund (Join) verbindet zwei Tabellen Typischerweise wird die Verbindung durch Attribute hergestellt, die in beiden Tabellen existieren Mengentheoretische
MehrRelationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL
Relationales Modell: SQLDDL SQL als Definitionssprache SQLDDL umfaßt alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben Externe Ebene
MehrIsolationsstufen für Transaktionen. Dr. Karsten Tolle
Isolationsstufen für Transaktionen Dr. Karsten Tolle Probleme bei Transaktionen Gewährleistung der Isolation Sperren kein Lost Update Read 1 (Accounts[13]) Read 2 (Accounts[13]) Write 2 (Accounts[13],101.000)
MehrMySQL 5.1. Kristian Köhntopp
MySQL 5.1 Kristian Köhntopp Was ist neu? Neues InnoDB Neue Replikation Neues Logging Event Scheduler Partitions INFORMATION_SCHEMA XML Functions Was ist neu? Neues InnoDB Neue Replikation Neues Logging
Mehrselect DISTINCT Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf - DISTINCT steht dass keine Zeile mehrfach vorkommt
Some SQL Queries % you can use them with the project Buch/Verlag select Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf select DISTINCT Name, ort From Verkauf; selektiert Name und Ort
MehrTransaktionen in Praxis. Dr. Karsten Tolle Vorl
Transaktionen in Praxis Dr. Karsten Tolle Vorl. 13.06.2017 Probleme bei Transaktionen Lost Update und Inconsistent Retrieval Sichtweise vom Benutzer Auszug aus SQL 92 1) P1 ("Dirty read"): SQL-transaction
MehrPHP & MySQL. MySQL Einführung. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (Michael.Kluge@tu-dresden.
Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH) PHP & MySQL MySQL Einführung Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424 (Michael.Kluge@tu-dresden.de) Inhalt Grundsätzliches
MehrLösungen der Übungsaufgaben von Kapitel 10
Lösungen der Übungsaufgaben von Kapitel 10 1. Legen Sie mit einem SQL - Befehl eine neue Tabelle PERSON_KURZ mit den Feldern Kurz_Id, Kurz_Name an. Machen Sie das so, dass Kurz_Id der Primärschlüssel wird
Mehr