Analytische Funktionen erfolgreich eingesetzt

Größe: px
Ab Seite anzeigen:

Download "Analytische Funktionen erfolgreich eingesetzt"

Transkript

1 Analytische Funktionen erfolgreich eingesetzt Dani Schnider Trivadis AG Glattbrugg, Schweiz Schlüsselworte: Analytische Funktionen, SQL, Performance Optimierung, Data Warehousing Zusammenfassung Analytische Funktionen wurden mit Oracle8i Release 2 eingeführt und in Oracle9i erweitert. Obwohl ihre zahlreichen und mächtigen Möglichkeiten somit schon seit einigen Jahren zur Verfügung stehen, werden analytische Funktionen heute leider immer noch selten eingesetzt. Hier soll gezeigt werden, wie verschiedene Fragestellungen mit Hilfe dieser Oracle- Funktionalität elegant und effizient formuliert werden können und wo die Vorteile aber auch Grenzen gegenüber herkömmlichen SQL-Abfragen liegen. Einleitung Ein einfaches Beispiel mit der guten alten EMP-Tabelle zu Beginn: Für jeden Mitarbeiter soll der Name, sein Gehalt sowie die Gehaltsumme seiner Abteilung angezeigt werden: DEPTNO ENAME SAL SUM_SAL CLARK KING MILLER SMITH JONES SCOTT ADAMS FORD ALLEN WARD MARTIN BLAKE TURNER JAMES Diese Abfrage lässt sich nicht mit einem einfachen SELECT-Befehl formulieren, da Daten auf unterschiedlichen Verdichtungsstufen angezeigt werden. Während sich die Spalten ENAME und SAL auf einen einzelnen Mitarbeiter beziehen, ist die Spalte SUM_SAL eine Aggregation (= Verdichtung) pro Abteilung. Eine mögliche Lösung ist die Verwendung einer Inline-View:

2 SELECT e1.deptno, e1.ename, e1.sal, e2.sum_sal FROM emp e1, (SELECT deptno, SUM(sal) sum_sal FROM emp GROUP BY deptno) e2 WHERE e1.deptno = e2.deptno ORDER BY e1.deptno Solche Lösungen funktionieren bestens und werden auch oft angewendet. Der Nachteil besteht hier darin, dass die Tabelle EMP zweimal gelesen werden muss. Klar, bei 14 Datensätzen ist dies kein Problem, aber bei grösseren Datenmengen können solche Abfragen zu Performanceverlusten führen. Das gleiche Ergebnis lässt sich einfach und elegant mit einer analytischen Funktion ermitteln. Dabei muss die Tabelle nur einmal gelesen werden, da die Berechnung von analytischen Funktionen im gleichen Durchlauf sozusagen nebenbei erfolgt. SELECT deptno, ename, sal, SUM(sal) OVER (PARTITION BY deptno) sum_sal FROM emp Grundprinzip der analytischen Funktionen Jede analytische Funktion bezieht sich auf Teilmengen der Daten, auf sogenannte Partitionen (die nichts mit partitionierten Tabellen zu tun haben). Anhand der Partitionen wird definiert, wie die Resultate der analytischen Funktion gruppiert werden. Die Aufteilung der Partitionen wird durch die Klausel PARTITION BY angegeben. Wird sie weggelassen, bezieht sich die analytische Funktion auf die gesamte Resultatmenge. Durch die Klausel ORDER BY kann festgelegt werden, wie die Daten innerhalb der Partition sortiert werden. Für viele der analytischen Funktionen ist die Angabe der Reihenfolge zwingend, da sie für die Funktionsberechnung wesentlich ist. Die Reihenfolge der Ausgabe der Resultatmenge kann jedoch von der Reihenfolge der Berechnung abweichen und wird wie üblich in SQL mit einem ORDER BY am Ende des SELECT-Befehls definiert. Falls für eine analytische Funktion ein ORDER BY spezifiziert wurde, kann die Menge der für die Berechnung relevanten Datensätze durch die Definition eines Windows zusätzlich eingeschränkt werden. Normalerweise umfasst das Window die Datensätze vom Beginn der Partition bis zum aktuellen Datensatz, es kann aber auch explizit durch ROWS (physische Grenze) oder RANGE (logische Grenze) eingeschränkt werden. Kompliziert? Anhand eines weiteren einfachen Beispiels soll das Grundprinzip der analytischen Funktionen illustriert werden: Für jeden Mitarbeiter soll berechnet werden, wie viele Mitarbeiter der gleichen Abteilung ein Gehalt im Bereich von +/ Dollar des

3 aktuellen Datensatzes haben. Die entsprechende SQL-Abfrage mit Verwendung der analytischen Funktion COUNT sieht folgendermassen aus: SELECT deptno, ename, hiredate, sal, COUNT(*) OVER (PARTITION BY deptno ORDER BY sal RANGE BETWEEN 1000 PRECEDING AND 1000 FOLLOWING) count_sal FROM emp Für jeden Datensatz der Resultatmenge wird nun die Spalte COUNT_SAL berechnet, ausgehend von der aktuellen Partition und dem aktuellen Window. Zu beachten ist dabei, dass die Partition und das Window wandern, d.h. für den jeweils aktuellen Datensatz (Current Row) neu festgelegt werden. Abb. 1: Partition, Window und Current Rows der analytischen Funktion Anwendungsbeispiel: Kumulierte Umsatzzahlen Eine typische Anwendung von analytischen Funktionen sind kumulierte Summierungen ( Year-to-date Abfragen), wie sie häufig in Data Warehouses vorkommen: Neben dem Umsatz pro Monat soll jeweils der gesamte Jahresumsatz bis zum entsprechenden Monat angezeigt werden. Das nachfolgende Beispiel zeigt, wie diese Problemstellung mittels einer analytischen Funktion gelöst werden kann. Dazu gruppieren wir die Umsatzzahlen nach Kalendermonat. Alle Monatsumsätze eines Jahres werden zu einer Partition zusammengefasst (PARTITION BY calendar_year) und nochmals summiert. Die Datensätze werden dazu nach Monat aufsteigend sortiert (ORDER BY calendar_month_desc). Dabei nützen wir die Tatsache aus, dass das für die Summierung verwendete Window jeweils alle Datensätze vom

4 Anfang der Partition (Januar des jeweiligen Jahres) bis zur Current Row (aktueller Monat) enthält. SELECT t.calendar_year year, t.calendar_month_desc month, SUM(s.amount_sold)/ millions, SUM(SUM(s.amount_sold)/ ) OVER (PARTITION BY t.calendar_year ORDER BY t.calendar_month_desc) millions_ytd FROM sales s, times t WHERE s.time_id = t.time_id GROUP BY t.calendar_year, t.calendar_month_desc Als Resultat wird jeweils der Monatsumsatz (Spalte MILLIONS) und der aufsummierte (=kumulierte) Umsatz innerhalb des Jahres (MILLIONS_YTD) ausgegeben: YEAR MONTH MILLIONS MILLIONS_YTD Das Beispiel basiert auf dem Sales History Beispielschema von Oracle10 g mit rund einer Million Einträgen in der SALES-Tabelle. Hier sind nun bereits deutliche Performanceunterschiede messbar. Der Execution Plan des ausgeführten SELECT-Befehls zeigt, dass die Tabelle SALES nur einmal gelesen und mit TIMES gejoined werden musste. Die Berechnung der analytischen Funktion wird am Schluss (nach dem GROUP BY) ausgeführt und ist im Execution Plan als WINDOW BUFFER dargestellt.

5 call count cpu elapsed disk query current rows Parse Execute Fetch total Rows Row Source Operation WINDOW BUFFER (cr=1773 pr=0 pw=0 time= us) 48 SORT GROUP BY (cr=1773 pr=0 pw=0 time= us) HASH JOIN (cr=1773 pr=0 pw=0 time= us) 1826 TABLE ACCESS FULL TIMES (cr=56 pr=0 pw=0 time=3896 us) PARTITION RANGE ALL PARTITION: 1 28 (cr=1717 pr=0 pw=0 time= us) TABLE ACCESS FULL SALES PARTITION: 1 28 (cr=1717 pr=0 pw=0 time= us) Im Vergleich dazu dauert die entsprechende Abfrage ohne Verwendung von analytischen Funktionen rund 10 mal länger und führt zu einem viel aufwändigeren Execution Plan, da mehrfach auf die Tabelle SALES zugegriffen werden muss: SELECT t.calendar_year year, t.calendar_month_desc month, SUM(s.amount_sold)/ millions, (SELECT SUM(s1.amount_sold)/ FROM sales s1, times t1 WHERE s1.time_id = t1.time_id AND t1.calendar_year = t.calendar_year AND t1.calendar_month_desc <= t.calendar_month_desc) millions_ytd FROM sales s, times t WHERE s.time_id = t.time_id GROUP BY t.calendar_year, t.calendar_month_desc ORDER BY t.calendar_year, t.calendar_month_desc call count cpu elapsed disk query current rows Parse Execute Fetch total Rows Row Source Operation SORT AGGREGATE (cr= pr=0 pw=0 time= us) TABLE ACCESS BY LOCAL INDEX ROWID SALES (cr= pr=0 pw=0 time= us) NESTED LOOPS (cr=21875 pr=0 pw=0 time= us) 9463 TABLE ACCESS FULL TIMES (cr=2688 pr=0 pw=0 time=57388 us) PARTITION RANGE ITERATOR PARTITION: KEY KEY (cr=19187 pr=0 pw=0 time= us) BITMAP CONVERSION TO ROWIDS (cr=19187 pr=0 pw=0 time= us) 9454 BITMAP INDEX SINGLE VALUE SALES_TIME_BIX PARTITION: KEY KEY (cr=19187 pr=0 ) 48 SORT GROUP BY (cr=1773 pr=0 pw=0 time= us) HASH JOIN (cr=1773 pr=0 pw=0 time= us) 1826 TABLE ACCESS FULL TIMES (cr=56 pr=0 pw=0 time=3736 us) PARTITION RANGE ALL PARTITION: 1 28 (cr=1717 pr=0 pw=0 time= us) TABLE ACCESS FULL SALES PARTITION: 1 28 (cr=1717 pr=0 pw=0 time= us) Ranking-Funktionen Als analytische Funktionen können nicht nur die klassischen Gruppenfunktionen wie SUM, COUNT, MIN, MAX, AVG etc. verwendet werden, sondern es gibt auch weitere Funktionen, die speziell für die Verwendungs als analytische Funktionen konzipiert wurden.

6 Dazu gehört die Familie der Ranking-Funktionen, mit denen beispielsweise Ranglisten oder Top-n-Abfragen formuliert werden können. Die Funktionen RANK und DENSE_RANK berechnen die Ranglisten-Nummer für jede Zeile der Ausgabe, basierend auf der Sortierung innerhalb der Partition. Der Unterschied zwischen den beiden Funktionen besteht darin, wie nach mehreren gleichplatzierten Datensätzen die Nummerierung fortgesetzt wird: SELECT deptno, ename, sal, RANK() OVER (ORDER BY sal DESC) rank, DENSE_RANK() OVER (ORDER BY sal DESC) dense_rank FROM emp WHERE deptno IN (10, 20) DEPTNO ENAME SAL RANK DENSE_RANK KING SCOTT FORD JONES CLARK MILLER ADAMS SMITH Solche Ranglisten lassen sich über die ganze Datenmenge oder pro Partition berechnen, und das in einer einzigen Abfrage. Im nachfolgenden Beispiel wird anhand der Verkaufszahlen pro Produkt eine Rangliste über alle Produkte gebildet, und gleichzeitig eine Rangliste innerhalb jeder Produktkategorie. Unabhängig davon, wie viele verschiedene analytische Funktionen berechnet werden, die Basistabelle in diesem Fall die Tabelle PROD_SALES muss immer nur einmal gelesen werden. SELECT prod_category, prod_name, amount, RANK() OVER (ORDER BY amount DESC) rank_total, RANK() OVER (PARTITION BY prod_category ORDER BY amount DESC) rank_category FROM prod_sales ORDER BY prod_category Bei der ersten RANK-Funktion wurde kein PARTITION BY angegeben. Somit bezieht sich die Rangliste auf alle Daten. Im zweiten Fall wird durch Angabe PARTITION BY prod_category erreicht, dass für jede Produktkategorie eine separate Rangliste erstellt wird. Dieses Beispiel erweitern wir nun folgendermassen: Wir möchten für jede Produktkategorie das erfolgreichste Produkt mit seinem Umsatz anzeigen. Dazu kann wiederum die Funktion RANK verwendet werden. Der naheliegenste Ansatz wäre, die analytische Funktion in der WHERE-Klausel zu verwenden:

7 WHERE RANK() OVER (PARTITION BY ORDER BY ) = 1 Hier stossen wir allerdings auf eine Einschränkung: Analytische Funktionen können innerhalb eines SQL-Befehls im SELECT- und im ORDER BY-Teil verwendet werden, nicht jedoch in der WHERE- oder HAVING-Bedingung. Der Versuch führt zu einer Fehlermeldung: ORA-30483: window functions are not allowed here Die Einschränkung lässt sich aber einfach umgehen, indem die analytischen Funktionen in eine Inline-View verpackt werden, auf welche dann die Einschränkung erfolgt: SELECT prod_category, prod_name, amount FROM (SELECT prod_category, prod_name, amount, RANK() OVER (PARTITION BY prod_category ORDER BY amount DESC) ranking FROM prod_sales) WHERE ranking = 1 Sind wir nun wieder gleich weit wie am Anfang? Ein Vorteil von analytischen Funktionen besteht ja darin, dass man dadurch Inline-Views vermeiden kann. Und nun benötigen wir eine Inline-View, um die analytischen Funktionen anzuwenden. Wo soll da der Vorteil sein? Im Gegensatz zum Beispiel am Anfang dieses Beitrages muss hier die Basistabelle nur einmal gelesen werden, und auf das Resultat dieses SELECT-Befehls erfolgt dann die Einschränkung. Zwar wäre es aus Performancegründen noch besser, wenn die Einschränkung zu Beginn, also vor der Auswertung der gesamten Inline-View erfolgen könnte. Dies ist aber deshalb nicht möglich, weil für die Berechnung der Produkte mit dem höchsten Umsatz die Verkaufszahlen entsprechend aggregiert und sortiert werden müssen, bevor die Einschränkung erfolgen kann. Weitere Funktionen Das gleiche Resultat lässt sich auch ohne Inline-View erreichen, und zwar mit einer Erweiterung, die mit Oracle9i eingeführt wurde: FIRST bzw. LAST können verwendet werden, wenn eine analytische Funktion nur auf den ersten bzw. letzten Wert der Resultatmenge angewendet werden soll. In unserem Beispiel heisst das, dass der Name des ersten Produkts ermittelt werden soll, das aus einer sortierten Liste nach absteigendem Umsatz zurückgegeben wird. Weil wir die gesamte Abfrage nach Produktkategorie gruppieren, muss zusätzlich eine Gruppenfunktion (z.b. MIN oder MAX) angegeben werden. SELECT prod_category, MIN(prod_name) KEEP (DENSE_RANK FIRST ORDER BY amount DESC), MAX(amount) FROM prod_sales GROUP BY prod_category

8 Weitere interessante analytische Funktionen sind LAG und LEAD. Damit ist es möglich, ausgehend vom aktuellen Datensatz auf vorhergehende oder nachfolgende Datensätze zuzugreifen: SELECT ename, hiredate, sal, LAG(sal, 2) OVER (ORDER BY hiredate) lag_sal, LEAD(sal, 3) OVER (ORDER BY hiredate) lead_sal FROM emp Das Resultat dieser Abfrage zeigt für jeden Mitarbeiter nicht nur sein Gehalt an, sondern auch das Gehalt des vorletzten Mitarbeiters, der eingestellt wurde und jenes des Mitarbeiters drei Anstellungsdaten später: Abb. 2: Analytische Funktionen LAG und LEAD Anwendungsbeispiel: Vorjahresvergleich Immer wieder besteht die Anforderung, dass zum Beispiel Verkaufszahlen mit den entsprechenden Werten der Vorperiode verglichen werden sollen. Im nachfolgenden Beispiel soll der Umsatz des aktuellen Monats dem Umsatz des gleichen Monats im Vorjahr gegenübergestellt werden. Dazu wird jeweils die Summe der Umsätze aus der 12-letzten Zeile übernommen. Das funktioniert natürlich nur, wenn in jedem Monat Verkäufe gemacht wurden.

9 SELECT t.calendar_month_desc, SUM(s.amount_sold)/ millions, LAG(SUM(s.amount_sold), 12) OVER (ORDER BY t.calendar_month_desc)/ millions_ly FROM sales s, times t WHERE s.time_id = t.time_id GROUP BY t.calendar_month_desc Neben den hier vorgestellten analytischen Funktionen gibt es zahlreiche weitere Möglichkeiten, insbesondere statistische Funktionen, auf die hier nicht im Detail eingegangen wird. Einen Eindruck von der Mächtigkeit der analytischen Funktionen soll das letzte Beispiel geben, in welchem verschiedene Funktionen kombiniert in einer SQL-Abfrage verwendet werden. Pro Produktkategorie und Jahr werden folgende Werte berechnet: TOTAL_AMOUNT: Gesamtumsatz der Produktkategorie im entsprechenden Jahr CHANGE_LY: Prozentuale Veränderung gegenüber Vorjahresumsatz der Kategorie PCT_YEAR: Prozentualer Anteil der Produktkategorie am gesamten Jahresumsatz CAT_RANK: Platzierung des Jahres innerhalb der Produktkategorie YEAR_RANK: Platzierung der Produktkategorie innerhalb des Jahres SELECT p.prod_category category, t.calendar_year year, SUM(s.amount_sold) total_amount, 100 * SUM(s.amount_sold) / LAG(SUM(s.amount_sold)) OVER (PARTITION BY p.prod_category ORDER BY t.calendar_year) -100 change_ly, 100 * RATIO_TO_REPORT (SUM(s.amount_sold)) OVER (PARTITION BY t.calendar_year) pct_year, RANK () OVER (PARTITION BY t.calendar_year ORDER BY SUM(s.amount_sold) DESC) cat_rank, RANK () OVER (PARTITION BY p.prod_category ORDER BY SUM(s.amount_sold) DESC) year_rank FROM sales s JOIN times t USING (time_id) JOIN products p USING (prod_id) GROUP BY t.calendar_year, p.prod_category ORDER BY p.prod_category, t.calendar_year Sollten Sie nun der Meinung sein, dass dieser SQL-Befehl kompliziert ist, versuchen Sie die gleiche Abfrage ohne Verwendung von analytischen Funktionen zu implementieren. Spätestens danach werden Sie die Einfachheit der analytischen Funktionen zu schätzen wissen. Fazit Mit den analytischen Funktionen hat Oracle eine SQL-Erweiterung eingeführt, die sehr vielseitig und hilfreich ist, wenn es um die Formulierung von komplexen Auswertungen und Berechnungen geht. Aufgrund der guten Performance eignen sie sich insbesondere auch für

10 Abfragen auf grossen Datenmengen hauptsächlich, aber nicht nur im Umfeld von Data Warehouses. Hat man die vielfältigen Möglichkeiten von analytischen Funktionen einmal entdeckt, möchte man dieses Oracle-Feature nicht mehr missen. Literatur Oracle9i SQL Reference, Release 2 (9.2), Part No. A , Chapter 6 Oracle9i Data Warehousing Guide, Release 2 (9.2), Part No. A , Chapter 19 Oracle Database SQL Reference 10g Release 1 (10.1), Part No. B , Chapter 7 Oracle Database Data Warehousing Guide, 10g Release 1 (10.1), Part No. B , Chapter 21 Weitere Informationen zu analytischen Funktionen werden in den Trivadis-Kursen SQL-B (SQL für Fortgeschrittene) und O-DWH (Data Warehousing mit Oracle) vermittelt. Kontaktadresse: Dani Schnider Trivadis AG Europa-Strasse 5 CH-8152 Glattbrugg Telefon: +41(0) Fax: +49(0) Internet:

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert. Betrifft Autor FIRST, LAST Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem NF9i-Kurs, NF9i-Techno-Circle der Trivadis und Oracle9i Data Warehousing

Mehr

Model Klausel - Der Excel-Killer von Oracle?

Model Klausel - Der Excel-Killer von Oracle? Model Klausel - Der Excel-Killer von Oracle? Andrea Kennel Trivadis AG Glattbrugg, Schweiz Schlüsselworte: Model Klausel, SQL, Data Warehousing, OLAP Zusammenfassung Ein Data Mart kann als ein Würfel mit

Mehr

Oracle Analytic Functions

Oracle Analytic Functions Mittwoch, 13.02.2008, 17:00 Uhr Regionaltreffen München/Südbayern Oracle Analytic Functions Seit Jahren auf dem Markt (8.1.6), jedoch unbekannt und selten im Einsatz S e i t e 1 Agenda Einsatzmöglichkeiten

Mehr

Art der Info: Technische Background Info Teil 2 (April 2002)

Art der Info: Technische Background Info Teil 2 (April 2002) Betrifft: Autor: Oracle 9i New Features SQL und PL/SQL Christine Hansen (christine.hansen@trivadis.com) Art der Info: Technische Background Info Teil 2 (April 2002) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

Art der Info: Technische Background Info Teil 3 (April 2002)

Art der Info: Technische Background Info Teil 3 (April 2002) Betrifft: Autor: Oracle9i New Features SQL und PL/SQL Patrick Malcherek (patrick.malcherek@trivadis.com) Art der Info: Technische Background Info Teil (April 00) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

SQL Intensivpraktikum SS 2008

SQL Intensivpraktikum SS 2008 SQL Intensivpraktikum SS 2008 Aggregation von Daten Arbeit mit Gruppen SQL1 basierend auf OAI-Kurs Copyright Oracle Corporation, 1998. All rights reserved. Gruppenfunktionen Gruppenfunktionen verarbeiten

Mehr

SQL Optimizer und SQL Performance

SQL 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

Mehr

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services 531 27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services Im zweiten Teil dieses Buches haben wir die Eigenschaften der Transact-SQL- Sprache in Bezug auf die Bearbeitung von operativen Daten gezeigt.

Mehr

Einleitung. ROLLUP, CUBE und GROUPING. Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002)

Einleitung. ROLLUP, CUBE und GROUPING. Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Betrifft Autör: GROUPING_ID Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem Oracle9i Data Warehousing Guide und den Kursen New Features Oracle9i

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Art der Info: Technische Background Info Teil 1 (April 2002)

Art der Info: Technische Background Info Teil 1 (April 2002) Betrifft: Autor: Oracle 9i New Features SQL und PL/SQL Christine Hansen (christine.hansen@trivadis.com) Art der Info: Technische Background Info Teil 1 (April 2002) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

Index- und Zugriffsstrukturen für. Holger Brämer, 05IND-P

Index- und Zugriffsstrukturen für. Holger Brämer, 05IND-P Index- und Zugriffsstrukturen für Data Warehousing Holger Brämer, 05IND-P Index- und Zugriffstrukturen für Data Warehousing Materialisierte Sichten Bitmap-Indexe Verbundindexe Materialisierte Sichten gehören

Mehr

Datenschätze heben: Data Mining Carsten Czarski Leitender Systemberater Business Unit Database ORACLE Deutschland GmbH

<Insert Picture Here> Datenschätze heben: Data Mining Carsten Czarski Leitender Systemberater Business Unit Database ORACLE Deutschland GmbH Datenschätze heben: Data Mining Carsten Czarski Leitender Systemberater Business Unit Database ORACLE Deutschland GmbH Agenda Data Mining... erste Schritte... Der Data Mining-Ansatz

Mehr

Einstellungen zur Verwendung von Flashback-Abfragen

Einstellungen zur Verwendung von Flashback-Abfragen Thema Autor REISE IN DIE VERGANGENHEIT Kamel Bouzenad (kamel.bouzenad@trivadis.com) Art der Info Infos für Entwickler und DBAs (April 2002) Quelle Oracle-Dokumentation sowie beratende Aktivitäten Überblick

Mehr

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten. Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen

Mehr

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration)

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration) Protokoll 1: Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration) Abschnitt 2.1 (Ausführungen zum Shutdown / Startup)

Mehr

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. Datenbankabfragen (Query) mit SQL (Structured Query Language) 1 Aufbau des SELECT-Befehls Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. SQL-Syntax: SELECT spaltenliste FROM tabellenname

Mehr

IT-Symposium 2008 05.06.2008

IT-Symposium 2008 05.06.2008 Selftuning Database Ein Traum oder Wirklichkeit Ralf Durben Oracle Deutschland GmbH www.hp-user-society.de 1 Die Arbeitswelt des Gestern, heute und morgen Früher Ein für wenige Datenbanken

Mehr

Datawarehouses, Materialized Views, Materialized View Logs, Query Rewrite

Datawarehouses, Materialized Views, Materialized View Logs, Query Rewrite Betrifft DWH1: Materialized Views für Data-Warehouses Art der Info Technische Info, Oracle8i Quelle Aus dem AI8-EF Kurs der Trivadis (Enterprise Features) Autor Andri Kisseleff (andri.kisseleff@trivadis.com)

Mehr

SQL structured query language

SQL 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

Mehr

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse & Einführung Online Analytical Processing (OLAP) (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S.

Mehr

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einfü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

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

Nutzung der Oracle Database InMemory Option für SAP BW

Nutzung der Oracle Database InMemory Option für SAP BW Nutzung der Oracle Database InMemory Option für SAP BW Schlüsselworte Oracle, SAP-BW, InMemory, Star-Schema. Jörn Bartels Oracle München Einleitung In SAP BW wurde bisher ein erweitertes Snow Flake Schema

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einfü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

Mehr

Fachbereich Informatik Praktikum 1

Fachbereich Informatik Praktikum 1 Hochschule Darmstadt DATA WAREHOUSE SS2015 Fachbereich Informatik Praktikum 1 Prof. Dr. S. Karczewski Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 14.April.2015 1. Kurzbeschreibung In diesem Praktikum geht

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5. Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.1 im Internet: www.datenbanken-programmierung.de... 3.0 SQL nach

Mehr

Die Datenmanipulationssprache SQL

Die Datenmanipulationssprache SQL Die Datenmanipulationssprache SQL Daten eingeben Daten ändern Datenbank-Inhalte aus Dateien laden Seite 1 Data Manipulation Language A DML statement is executed when you Add new rows to a table Modify

Mehr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 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

Mehr

bersicht Datenbanken und Datawarehouses Datenbank Datenbanksysteme Niels Schršter

bersicht Datenbanken und Datawarehouses Datenbank Datenbanksysteme Niels Schršter bersicht Niels Schršter EinfŸhrung GROUP BY Roll UpÔs Kreuztabellen Cubes Datenbank Ansammlung von Tabellen, die einen ãausschnitt der WeltÒ fÿr eine Benutzergruppe beschreiben. Sie beschreiben die funktionalen

Mehr

Inhalt. 1. Indextypen B*Baum-Index Reversed Key Index Bitmap Index Funktionsbasierter Index

Inhalt. 1. Indextypen B*Baum-Index Reversed Key Index Bitmap Index Funktionsbasierter Index Inhalt 1. Indextypen B*Baum-Index Reversed Key Index Bitmap Index Funktionsbasierter Index 2. Indexverwendung Vergleich von B*Baum und Bitmap Steuerung der Indexverwendung Richtlinien für die Indizierung

Mehr

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index!

Einstieg 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!

Mehr

Kompaktes Datenbank-Wissen rund um die Datenbank-Programmierung mit Transact-SQL

Kompaktes Datenbank-Wissen rund um die Datenbank-Programmierung mit Transact-SQL UnternehmensDatenbanken im Netzwerk Teil 3: SQL Programmierung - Grundlagen SQL-Befehle Funktionen Operatoren Datentypen Datenbank erstellen Tabellen SQL-Abfragen Autor: Rainer Egewardt Copyright Kompaktes

Mehr

Oracle Warehouse Builder 3i

Oracle Warehouse Builder 3i Betrifft Autoren Art der Info Oracle Warehouse Builder 3i Dani Schnider (daniel.schnider@trivadis.com) Thomas Kriemler (thomas.kriemler@trivadis.com) Technische Info Quelle Aus dem Trivadis Technologie

Mehr

Oracle OLAP 11g: Performance für das Oracle Data Warehouse

Oracle OLAP 11g: Performance für das Oracle Data Warehouse Oracle OLAP 11g: Performance für das Oracle Data Warehouse Marc Bastien Oracle BI Presales Agenda Performanceprobleme in Oracle DWH: gibt s das überhaupt? Mögliche Gründe und Lösungen

Mehr

Enrico Genauck 37327 IN04

Enrico Genauck 37327 IN04 ANFRAGEOPTIMIERUNG IN ORACLE Enrico Genauck 37327 IN04 An!ageoptimierung in Oracle 1 ANFRAGEOPTIMIERUNG IN ORACLE Enrico Genauck 37323 IN04 Einleitung Die Optimierung einer Anfrage an eine relationale

Mehr

Data Warehouse schnell gemacht Performanceaspekte im Oracle DWH

Data Warehouse schnell gemacht Performanceaspekte im Oracle DWH Data Warehouse schnell gemacht Performanceaspekte im Oracle DWH Dani Schnider Principal Consultant Business Intelligence BI Trilogie, Zürich/Basel 25./26. November 2009 Basel Baden Bern Lausanne Zürich

Mehr

Abfragen: Grundbausteine

Abfragen: Grundbausteine Abfragen: Grundbausteine Abfragen sollen gezielt Teile der Information wiedergeben. Das Ergebnis einer solchen Operation ist eine. Der Aufbau der Ergebnistabelle wird durch zwei Grundverfahren festgelegt:

Mehr

Fortgeschrittene OLAP Analysemodelle

Fortgeschrittene OLAP Analysemodelle Fortgeschrittene OLAP Analysemodelle Jens Kübler Imperfektion und erweiterte Konzepte im Data Warehousing 2 Grundlagen - Datenanalyse Systemmodell Datenmodell Eingaben System Schätzer Datentypen Datenoperationen

Mehr

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung Betrifft Optimizer Autor Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Quelle Aus unserer Projekterfahrung und Forschung Einführung Mit jedem Oracle Release nimmt die Anzahl

Mehr

Andrea Held. Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken. Empfehlungen

Andrea Held. Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken. Empfehlungen Andrea Held Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken Partitionierung Komprimierung ILM Assistant Flashback Data Archive Empfehlungen 1 Datenwachstum Wachsende Kosten Schlechtere

Mehr

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien 1.1 Definition Datenbank Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS

Mehr

Datenbankprogrammierung

Datenbankprogrammierung Datenbankprogrammierung Arbeiten mit DB2 Server DB2- Befehlszeilenprozessor ausführen SQL-Skript-Datei bearbeiten Editor SSH Client Linux SSH-Konsole für Befehlszeilenproz. (ssh) X-Weiterleitung für Editor

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views 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

Mehr

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs Betrifft Art der Info Quelle WHERE Klausel Generierung mit.net und Oracle Technical Info Aus unserer Projekterfahrung und Architektur-Kurs Where ist the WHERE? Der Artikel untersucht die Möglichkeiten,

Mehr

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken.

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Vorlesungsteil SQL Grundlagen - 1 / 8 - SQL SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Auf einem Server (Rechner im Netz, der Dienste

Mehr

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY Data Cube On-line Analytical Processing (OLAP). Einführung Ziel: Auffinden interessanter Muster in großen Datenmengen 2. Aggregation in SQL, GROUP BY 3. Probleme mit GROUP BY 4. Der Cube-Operator! Formulierung

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

Cassandra Query Language (CQL)

Cassandra 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

Mehr

4. ArcView Anwendertreffen Datenbankanbindung mit ArcView. Daniel Fuchs

4. ArcView Anwendertreffen Datenbankanbindung mit ArcView. Daniel Fuchs 4. ArcView Anwendertreffen Daniel Fuchs Gliederung Teil 1: Grundbegriffe zu Datenbanken Teil 2: SQL menügesteuerte Datenabfragen aus ArcView Teil 3: SQL und Avenue Einstieg in die Programmierung Teil 4:

Mehr

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Schlagworte Autor: Klaus Friemelt, MT AG dynamisches BULK SQL, VARCHAR2-indizierte PL/SQL-Tabellen Einleitung Mit den letzten

Mehr

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus:

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus: Einführung in MySQL SQL (Structured Query Language) ist eine Computersprache zum Speichern, Bearbeiten und Abfragen von Daten in relationalen Datenbanken. Eine relationale Datenbank kann man sich als eine

Mehr

MIN oder MAX Bildung per B*Tree Index Hint

MIN oder MAX Bildung per B*Tree Index Hint E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de MIN oder MAX Bildung per B*Tree Index Hint Zugegeben, der Trick Min- oder Maximalwerte per Index Hint zu ermitteln ist nicht neu. Gewöhnlich

Mehr

3.17 Zugriffskontrolle

3.17 Zugriffskontrolle 3. Der SQL-Standard 3.17. Zugriffskontrolle Seite 1 3.17 Zugriffskontrolle Datenbanken enthalten häufig vertrauliche Informationen, die nicht jedem Anwender zur Verfügung stehen dürfen. Außerdem wird man

Mehr

5.8 Bibliotheken für PostgreSQL

5.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

Mehr

Mehr Ergebnisse: Linguistische Funktionen und Ähnlichkeitssuche mit SQL. Carsten Czarski ORACLE Deutschland B.V. & Co KG München

Mehr Ergebnisse: Linguistische Funktionen und Ähnlichkeitssuche mit SQL. Carsten Czarski ORACLE Deutschland B.V. & Co KG München Mehr Ergebnisse: Linguistische Funktionen und Ähnlichkeitssuche mit SQL Carsten Czarski ORACLE Deutschland B.V. & Co KG München Einleitung Jede Suche in den Tabellen im Data Warehouse ist eine SQL-Abfrage

Mehr

Kapitel 3: Datenbanksysteme

Kapitel 3: Datenbanksysteme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2015 Kapitel 3: Datenbanksysteme Vorlesung:

Mehr

Performance by Design Wie werden performante ETL-Prozesse erstellt?

Performance by Design Wie werden performante ETL-Prozesse erstellt? Performance by Design Wie werden performante ETL-Prozesse erstellt? Reinhard Mense ARETO Consulting Bergisch Gladbach Schlüsselworte: DWH, Data Warehouse, ETL-Prozesse, Performance, Laufzeiten, Partitionierung,

Mehr

SQL Server 2008 Performance-Optimierung

SQL Server 2008 Performance-Optimierung Holger Schmeling SQL Server 2008 Performance-Optimierung Das Praxisbuch für Entwickler und Administratoren ^ ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL 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-

Mehr

Indexing und Performance Tuning

Indexing 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

Mehr

Data Warehousing Grundbegriffe und Problemstellung

Data Warehousing Grundbegriffe und Problemstellung Data Warehousing Grundbegriffe und Problemstellung Dr. Andrea Kennel, Trivadis AG, Glattbrugg, Schweiz Andrea.Kennel@trivadis.com Schlüsselworte Data Warehouse, Cube, Data Mart, Bitmap Index, Star Queries,

Mehr

ORACLE. ORACLE-SQL für Profis. Tuning von ORACLE-SQL (Einführung-1) Januar, 2005 1

ORACLE. ORACLE-SQL für Profis. Tuning von ORACLE-SQL (Einführung-1) Januar, 2005 1 ORACLE ORACLE-SQL für Profis Tuning von ORACLE-SQL (Einführung-1) 1 1. Einführung ORACLE erlaubt eine Vielzahl von Tuning-Optionen, unter anderem: Optimierung der DB-Server für diverse Rechnerarchitekturen.

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

SQL. Structured Query Language

SQL. Structured Query Language SQL Structured Query Language Grundlagen zu Abfrage SQL Jede SQL-Abfrage enthält die drei Hauptbefehle: select (engl. auswählen), from (engl. von) und where (engl. wo). Mit select gibt man an, welche Spalten

Mehr

ORACLE DATENBANKOPTIMIERUNG (BASICS)

ORACLE DATENBANKOPTIMIERUNG (BASICS) ORACLE DATENBANKOPTIMIERUNG (BASICS) INHALT 1 Motivation... 1 2 Automatische, regelmäßige DB-Optimierung... 2 2.1 Index-Rebuild... 2 2.2 Tabellen-Reorganisation... 2 2.3 Statistiken ermitteln... 3 2.4

Mehr

Oracle auf Mac. Wie läuft das? Installation Oracle auf Mac

Oracle auf Mac. Wie läuft das? Installation Oracle auf Mac Oracle auf Mac Wie läuft das? Wie kann Oracle auf Mac installiert werden? Wie kann die Performance verglichen werden? Funktioniert die Oracle Installation als Server und als Client? Für wen ist es interessant,

Mehr

Erstellen einer Datenbank. Datenbankabfragen

Erstellen einer Datenbank. Datenbankabfragen Erstellen einer Datenbank Datenbankabfragen Überblick Die fünf Stationen Semantisches Modell Logisches Modell Prüfung auf Redundanz Abfragen Softwaremäßige Implementierung Zur Erinnerung: Semantisches

Mehr

Johannes Ahrends CarajanDB GmbH. www.carajandb.com 2013 CarajanDB GmbH

Johannes Ahrends CarajanDB GmbH. www.carajandb.com 2013 CarajanDB GmbH Johannes Ahrends CarajanDB GmbH CarajanDB Warum ist eine Anwendung langsam? Beispiele von echten Performanceproblemen 2 Experten mit über 20 Jahren Oracle Erfahrung Firmensitz in Erftstadt bei Köln Spezialisten

Mehr

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY. SELECT - Der Grundbefehl zur Auswahl von Daten Die SELECT-Anweisung fragt Daten aus einer Datenbank ab und stellt diese in einer virtuellen Tabelle zur Verfügung. Diese virtuelle Tabelle, eine Menge von

Mehr

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11 Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS

Mehr

Inhaltsverzeichnis. jetzt lerne ich

Inhaltsverzeichnis. jetzt lerne ich Inhaltsverzeichnis jetzt lerne ich Einführung 15 1 Erste Schritte 21 1.1 Datenbanken und Datenbank-Managementsysteme 21 1.2 Zugriff auf Datenbanken 22 1.3 Was der Großvater noch wusste... 22 1.4 Einordnung

Mehr

Aktuelle Entwicklungen

Aktuelle Entwicklungen PostgreSQL Aktuelle Entwicklungen (Hans-Jürgen Schönig), [HACKERS] Are we losing momentum? Bruce Momjian: August 2003 Momjian Blog: Postgres Is Hot Bruche Momjian Blog: June 7, 2008 I have attended or

Mehr

Structured Query Language (SQL) 1

Structured Query Language (SQL) 1 Structured Query Language (SQL) 1 1. Grundlagen und Hilfsmittel Structured Query Language, kurz SQL, wurde in den 70er Jahren bei IBM entwickelt, als eine Arbeitsgruppe die erste relationale Datenbank

Mehr

Index Rebuild. DOAG Konferenz , Nürnberg DOAG Konferenz , Nürnberg Martin Hoermann Martin Hoermann

Index Rebuild. DOAG Konferenz , Nürnberg DOAG Konferenz , Nürnberg Martin Hoermann Martin Hoermann Index Rebuild DOAG Konferenz 17.01.2011, Nürnberg DOAG Konferenz 17.11.2011, Nürnberg Martin Hoermann info@ordix.de Martin Hoermann www.ordix.de info@ordix.de www.ordix.de Eine kurze Geschichte der Zeit

Mehr

Projektion. Projektion. Operation: Projektion

Projektion. Projektion. Operation: Projektion Projektion einfache Abfragen Aufbereiten der Ergebnisse von Abfragen Ausdrücke und Formeln Abfragen im Verbund aggregierende Abfragen gruppierende Abfragen Angabe der zu bearbeitenden Tabelle(n) Angabe

Mehr

Wirtschaftsinformatik. SQL Abfragen und QBE. Unterrichtsskript. Version: 2.0

Wirtschaftsinformatik. SQL Abfragen und QBE. Unterrichtsskript. Version: 2.0 Wirtschaftsinformatik SQL Abfragen und QBE Unterrichtsskript Version: 2.0 Autor: Jonas Lanz Datum: 02.06.2006 FHNW Hochschule für Wirtschaft 2 / 29 Inhaltsverzeichnis 1. Einführung 3 1.1 Relationale Operationen

Mehr

MySQL Performance Tuning für Entwickler

MySQL Performance Tuning für Entwickler MySQL Performance Tuning für Entwickler Cebit 2015, Hannover Oli Sennhauser Senior MySQL Consultant, FromDual GmbH oli.sennhauser@fromdual.com 1 / 18 FromDual GmbH Support Beratung remote-dba Schulung

Mehr

Oracle12c für Entwickler

Oracle12c für Entwickler Oracle12c für Entwickler Carsten.Czarski@oracle.com http://tinyurl.com/apexcommunity http://sql-plsql-de.blogspot.com http://oracle-text-de.blogspot.com http://plsqlexecoscomm.sourceforge.net http://plsqlmailclient.sourceforge.net

Mehr

IT-Symposium 2004. Ralf Durben. Business Unit Datenbank. ORACLE Deutschland GmbH. www.decus.de 1

IT-Symposium 2004. Ralf Durben. Business Unit Datenbank. ORACLE Deutschland GmbH. www.decus.de 1 Ralf Durben Business Unit Datenbank ORACLE Deutschland GmbH www.decus.de 1 Oracle Database 10g Diagnostik- und Taskmanagement Diagnostik Management Was passiert in der Datenbank, gibt es Probleme? Möglichst

Mehr

Gliederung. 1) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren

Gliederung. 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:

Mehr

Oracle Exadata Storage Server Performance erklärt SmartScan

Oracle Exadata Storage Server Performance erklärt SmartScan Products 31 Daniel Rey, OPITZ CONSULTING Schweiz GmbH Oracle Exadata Storage Server Performance erklärt SmartScan Im Herbst 2008 präsentierte Oracle an der OpenWorld den Exadata Storage Server und die

Mehr

Arbeiten mit ACCESS 2013

Arbeiten mit ACCESS 2013 Dipl.-Hdl., Dipl.-Kfm. Werner Geers Arbeiten mit ACCESS 2013 Datenbanken mit Datenmodellierung Tabellen, Abfragen, Formularen und Berichten Beziehungen Makros Datenaustausch SQL Structured Query Language

Mehr

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B

Mehr

Data Warehousing und Data Mining

Data Warehousing und Data Mining Data Warehousing und Data Mining Logische Optimierung Ulf Leser Wissensmanagement in der Bioinformatik Inhaltsübersicht Vorlesung Einleitung & Motivation Architektur Modellierung von Daten im DWH Umsetzung

Mehr

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel ORM & OLAP Object-oriented Enterprise Application Programming Model for In-Memory Databases Sebastian Oergel Probleme 2 Datenbanken sind elementar für Business-Anwendungen Gängiges Datenbankparadigma:

Mehr

Objektorientierte Datenbanken

Objektorientierte Datenbanken OODB 11 Slide 1 Objektorientierte Datenbanken Vorlesung 11 Sebastian Iwanowski FH Wedel OODB 11 Slide 2 Wesentliche Eigenschaften von Hibernate Transparente Persistenz Transitive Persistenz (Persistenz

Mehr

ACCESS SQL ACCESS SQL

ACCESS 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

Mehr

SQL-Optimizer und Optimierung bei DB2

SQL-Optimizer und Optimierung bei DB2 SQL-Optimizer und Optimierung bei DB2 S.K. Consulting GmbH, München DB2_SQL_PERF - 1 - Inhaltsverzeichnis 1. Optimierung bei DB2 1.1 Einflussfaktoren auf die Entscheidung des Optimizers 1.2 Übersicht über

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

IBM Informix Tuning und Monitoring

IBM Informix Tuning und Monitoring Seminarunterlage Version: 11.01 Copyright Version 11.01 vom 25. Juli 2012 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Analytische Auswertungen in SQL

Analytische Auswertungen in SQL Analytische Auswertungen in SQL LV Datenorientierte Systemanalyse, WS 2014/15 Dr. Walter Ebner, Institut für Informationswirtschaft Wirtschaftsuniversität Wien Überblick Funktionen

Mehr

4. Datenabfrage mit QBE 11

4. Datenabfrage mit QBE 11 Informationsbestände analysieren Datenabfrage mit QBE 4. Datenabfrage mit QBE 11 4.1. QBE vs. SQL Relationale Datenbanken haben schon früh den Anspruch gestellt, auch für Nicht- Informatiker nutzbar zu

Mehr

Physische Datenbankdefinition in. Arthur Bauer

Physische Datenbankdefinition in. Arthur Bauer Physische Datenbankdefinition in Arthur Bauer Inhalt Cluster Index-Cluster Hash-Cluster Vor- und Nachteile Index-Organisierte Tabelle (IOT) Partitionierung STORAGE-Klausel in DDL Indexstrukturen Oracle

Mehr

PostgreSQL in großen Installationen

PostgreSQL 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,

Mehr

Datenbanken mit OpenOffice-Base Tabellen und einfache Abfragen

Datenbanken mit OpenOffice-Base Tabellen und einfache Abfragen Datenbanken mit OpenOffice-Base Tabellen und einfache Abfragen Im Rahmen der IFB - Veranstaltung Nr. 92 177 01 01 Informatik in der Sek I Programmierung vom 21.-22.09.2009 Peter Dauscher Gymnasium am Kaiserdom,

Mehr

Online-Kurs 'Datenbanken und Datenmodellierung'

Online-Kurs 'Datenbanken und Datenmodellierung' Online-Kurs 'Datenbanken und Datenmodellierung' n Print-Version - 15.04.2002 (c) StR S. Winter - Universität Passau Inhaltsverzeichnis 1 Der Aufbau von SQL-Anfragen im Überblick 1.1 Der Aufbau einer SQL-Anfrage

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. 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

Mehr