Ziel der Arbeit - RWTH

Werbung
Optimierung der Datenbankstruktur
einer Web-Anwendung zur Analyse
von Fertigungsprozessen
Vortrag Seminararbeit
Fabian Ripplinger
Aachen, 22.01.2014
© WZL/Fraunhofer IPT
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 3
Ziel der Arbeit
Übergeordnetes
Gesamtziel
 Performance Verbesserung der Datenbankzugriffe in WoPS+
Detaillierte Ziele
Verbesserung der Performance durch:
 Ein anderes Datenbanksystem
 Eine veränderte Datenbankstruktur
 Geeignete Indizierung
© WZL/Fraunhofer IPT
Seite 4
WoPS+
Beschreibung der Software
Eingabedaten
Web-Tool
Auswertungen
Auswertungen
Simulation
Konfiguration
Bildquelle: http://cdn.flaticon.com/png/256/1829.png; http://cdns2.freepik.com/free-photo/slots-representing-configuration_318-9479.jpg
© WZL/Fraunhofer IPT
Seite 5
Agenda
1
Ziel der Arbeit
2
Grundlagen
2.1 ACID und BASE
2.2 Normalisierung
2.3 Indizes
3
Umsetzung
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 7
ACID und BASE
Eigenschaften eines Datenbanksystems
ACID
 Atomicity: Jede Transaktion wird entweder
ganz oder gar nicht ausgeführt.
 Consistency: Die Daten sind zu jeder Zeit
 Soft state: Daten können sich verändern,
konsistent.
 Isolation: Transaktionen beeinflussen sich
nicht gegenseitig.
 Durability: Die Daten sind garantiert dauerhaft
abgespeichert.
Relationale DBS
© WZL/Fraunhofer IPT
BASE
 Basically Available: Die Daten werden auf
mehreren Systemen gespeichert. Somit ist
eine Version der Daten immer erreichbar.
obwohl gerade kein User auf das System
zugreift.
 Eventually Consistent: Nicht jede Version der
Daten ist immer auf dem neusten Stand.
NoSQL-DBS
Seite 8
Agenda
1
Ziel der Arbeit
2
Grundlagen
2.1 ACID und BASE
2.2 Normalisierung
2.3 Indizes
3
Umsetzung
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 9
1. Normalform
1. Normalform verletzt
CD_ID
Albumtitel
Interpret
Jahr der
Gründung
Titelliste
4711
Not That Kind
Anastacia
1999
{1. Not That Kind, 2. I’m Outta Love, 3. Cowboys & Kisses}
4712
Wish You Were Here
Pink Floyd
1964
{1. Shine On You Crazy Diamond}
4713
Freak of Nature
Anastacia
1999
{1. Paid my Dues}
1. Normalform erfüllt
CD_ID
Albumtitel
Interpret
Jahr der Gründung
Track
Titel
4711
Not That Kind
Anastacia
1999
1
Not That Kind
4711
Not That Kind
Anastacia
1999
2
I’m Outta Love
4711
Not That Kind
Anastacia
1999
3
Cowboys & Kisses
4712
Wish You Were Here
Pink Floyd
1964
1
Shine On You Crazy Diamond
4713
Freak of Nature
Anastacia
1999
1
Paid my Dues
Bedingungen: Alle Attribute sind atomar, also nicht weiter zerlegbar.
© WZL/Fraunhofer IPT
Seite 10
2. Normalform
2. Normalform verletzt
CD_ID
Albumtitel
Interpret
Jahr der Gründung
Track
Titel
4711
Not That Kind
Anastacia
1999
1
Not That Kind
4711
Not That Kind
Anastacia
1999
2
I’m Outta Love
4711
Not That Kind
Anastacia
1999
3
Cowboys & Kisses
4712
Wish You Were Here
Pink Floyd
1964
1
Shine On You Crazy Diamond
4713
Freak of Nature
Anastacia
1999
1
Paid my Dues
2. Normalform erfüllt
CD_ID
Track
Titel
4711
1
Not That Kind
CD_ID
Albumtitel
Interpret
Jahr der Gründung
4711
2
I’m Outta Love
4711
Not That Kind
Anastacia
1999
4711
3
Cowboys & Kisses
4712
Wish You Were Here
Pink Floyd
1964
4712
1
Shine On You Crazy Diamond
4713
Freak of Nature
Anastacia
1999
4713
1
Paid my Dues
Bedingungen: 1. Normalform erfüllt.
Jedes Nichtschlüsselattribut ist voll funktional abhängig vom Primärschlüssel.
© WZL/Fraunhofer IPT
Seite 11
3. Normalform
3. Normalform verletzt
CD_ID
Albumtitel
Interpret
Jahr der Gründung
4711
Not That Kind
Anastacia
1999
4712
Wish You Were Here
Pink Floyd
1964
4713
Freak of Nature
Anastacia
1999
3. Normalform erfüllt
Interpret_ID
Interpret
Jahr der Gründung
311
Anastacia
1999
312
Pink Floyd
1964
CD_ID
Track
Titel
4711
1
Not That Kind
4711
2
I’m Outta Love
CD_ID
Albumtitel
Interpret_ID
4711
3
Cowboys & Kisses
4711
Not That Kind
311
4712
1
Shine On You Crazy Diamond
4712
Wish You Were Here
312
4713
1
Paid my Dues
4713
Freak of Nature
311
Bedingungen: 2. Normalform erfüllt. Kein Nichtschlüsselattribut ist von einem anderen
Nichtschlüsselattribut funktional abhängig.
© WZL/Fraunhofer IPT
Seite 12
Agenda
1
Ziel der Arbeit
2
Grundlagen
2.1 ACID und BASE
2.2 Normalisierung
2.3 Indizes
3
Umsetzung
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 13
Indizes
Gruppierter Index
 Nur einer pro Tabelle
Nicht gruppierter Index
 Mehrere pro Tabelle
 Kann mehrere Spalten enthalten
 Bezieht sich immer nur auf eine Spalte
 Die Reihenfolge der Spalten ist wichtig
 Wird getrennt von den Daten verwaltet
 Daten werden sortiert abgelegt
 Abgespeichert als B-Baum
Indizes können die Suche und das Sortieren nach bestimmten Spalten beschleunigen.
Der Verwaltungsaufwand für Indizes ist nicht zu vernachlässigen.
Bildquelle: http://use-the-index-luke.com/de/sql/anatomie/index-baum
© WZL/Fraunhofer IPT
Seite 14
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
3.1 Wahl der Datenbank
3.2 Änderungen an der Struktur
3.3 Indizes
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 15
Umsetzung
Aufbau
System
 Alle nicht benötigten Programme deaktiviert
 Datenbank und Tool laufen auf einem System
 Netzwerk Auslastung hat keinen Einfluss
 Immer nur ein Client
WoPS+
 Beispiel Firmendatensatz mit 150.000 Zeilen
 Gemessen wird die Zeit vom Einlesen der Daten
und der nötigen Berechnungen
Bildquelle: http://www.downloadclipart.net/large/915-monitor-and-computer-design.png; http://t3n.de/news/wp-content/uploads/2010/07/symbolbild-datenbank.jpg
© WZL/Fraunhofer IPT
Seite 16
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
3.1 Wahl der Datenbank
3.2 Änderungen an der Struktur
3.3 Indizes
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 17
Wahl der Datenbank
Oracle und MySQL eignen sich für den Vergleich.
Die Wahl ist auf Oracle gefallen
© WZL/Fraunhofer IPT
Seite 18
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
3.1 Wahl der Datenbank
3.2 Änderungen an der Struktur
3.3 Indizes
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 19
Änderungen an der Struktur
Arbeitsplan
Arbeitsplan_sim
Auftrags Nr. Vorgang Arbeitsplatz Hauptzeit User Projekt Nr.
A_1
10
5
400.0
12
49
A_1
20
8
375.0
12
49
A_2
10
2
200.0
12
49
ID
1
2
3
FK
1
1
2
2
3
3
Vorgangsstart
Vorgangsende Projekt Szenario Nr.
01.01.2012 05:33 02.01.2012 03:48 49
0
02.01.2012 06:00 02.01.2012 16:40 49
1
02.01.2012 03:48 03.01.2012 00:40 49
0
02.01.2012 16:40 03.01.2012 13:31 49
1
31.12.2011 17:07 01.01.2012 22:13 49
0
03.01.2012 00:20 03.01.2012 05:20 49
1
User
12
12
12
12
12
12
Arbeitsplan
Auftragsnummer
A_1
A_1
A_1
A_1
A_2
A_2
Vorgang
10
10
20
20
10
10
Arbeitsplatz
5
5
8
8
2
2
Hauptzeit
400.0
400.0
375.0
375.0
200.0
200.0
User
12
12
12
12
12
12
Projektnummer
49
49
49
49
49
49
Vorgangsstart
01.01.2012 05:33
02.01.2012 06:00
02.01.2012 03:48
02.01.2012 16:40
31.12.2011 17:07
03.01.2012 00:20
Vorgangsende Szenario Nr.
02.01.2012 03:48
0
02.01.2012 16:40
1
03.01.2012 00:40
0
03.01.2012 13:31
1
01.01.2012 22:13
0
03.01.2012 05:20
1
Durch die Denormalisierung können viele Verbundoperationen eingespart werden
© WZL/Fraunhofer IPT
Seite 20
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
3.1 Wahl der Datenbank
3.2 Änderungen an der Struktur
3.3 Indizes
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 21
Indizes
Benutzer
Firmendatensätze
Simulierte Szenarien
Szenario
Szenario
Projekt
Szenario
User
Projekt
Szenario
Ein gruppierte Index mit den Spalten User-ID, Projekt-ID und Szenario-ID erscheint sinnvoll.
Weitere nicht gruppierte Indizes werden nicht benötigt.
© WZL/Fraunhofer IPT
Seite 22
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 23
Ergebnis der Arbeit
Wechsel zu Oracle
300
Gefüllte Datenbank
(50 Firmensätze)
⌀-Werte in Sekunden ⌀-Werte in Sekunden
250
in Sekunden
Leere Datenbank
200
150
100
50
0
Ausgangssituation
174 (100%)
242 (100%)
Oracle Datenbank
179 (102,87%)
247 (102,1%)
Durchschnitt
Standardabweichung
Der Wechsel zu einer Oracle Datenbank brachte keinen großen Unterschied.
Die Ergebnisse waren im Mittel sogar etwas schlechter als vorher.
© WZL/Fraunhofer IPT
Seite 24
Ergebnis der Arbeit
Wechsel zur neuen Datenbankstruktur
300
Gefüllte Datenbank
(50 Firmensätze)
⌀-Werte in Sekunden ⌀-Werte in Sekunden
250
in Sekunden
Leere Datenbank
200
150
100
50
0
Ausgangssituation
174 (100%)
242 (100%)
Veränderte Struktur
133 (76,44%)
162 (66,94%)
Durchschnitt
Standardabweichung
Die Veränderungen an der Datenbankstruktur ergaben eine Verbesserung von ca. 33%.
Außerdem ist die Standardabweichung niedriger.
© WZL/Fraunhofer IPT
Seite 25
Ergebnis der Arbeit
Veränderungen an der Indizierung
300
Gefüllte Datenbank
(50 Firmensätze)
⌀-Werte in Sekunden ⌀-Werte in Sekunden
250
in Sekunden
Leere Datenbank
200
150
100
50
0
Ausgangssituation
174 (130,83%)
242 (149,38%)
Veränderte Struktur
133 (100%)
162 (100%)
Veränderte
155(116,54%)
173 (106,8%)
Durchschnitt
Standardabweichung
Indizierung
Der Verwaltungsaufwand der Indizes ist deutlich messbar.
Mit steigender Datenmenge erhöht sich der Nutzen von Indizes.
© WZL/Fraunhofer IPT
Seite 26
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 27
Zusammenfassung und Ausblick
 Ein Wechsel zu einer Oracle Datenbank lohnt sich in unserem
Beispiel nicht.
 Da MySQL ebenfalls den Anforderungen entsprach, sollte es im
Anschluss ebenfalls getestet werden.
 Denormalisierung der Tabellen „Arbeitsplan“ und „Fauf“
beschleunigt den Vorgang. Dafür muss mehr auf die Konsistenz
geachtet werden.
 Mit der Indizierung waren die Messungen etwas langsamer.
Jedoch sollte es bei größeren Datenmengen schneller werden.
© WZL/Fraunhofer IPT
Seite 28
Herzlichen Dank!
Fabian Ripplinger
© WZL/Fraunhofer IPT
Quellen





http://use-the-index-luke.com/de/sql/anatomie/index-baum
http://cdn.flaticon.com/png/256/1829.png
http://cdns2.freepik.com/free-photo/slots-representing-configuration_318-9479.jpg
http://t3n.de/news/wp-content/uploads/2010/07/symbolbild-datenbank.jpg
http://www.downloadclipart.net/large/915-monitor-and-computer-design.png
© WZL/Fraunhofer IPT
Seite 30
Herunterladen