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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Erhöhung der Manageability durch SQL-Profile

Erhöhung der Manageability durch SQL-Profile Erhöhung der Manageability durch SQL-Profile Ein Erfahrungsbericht 20.11.2007 Dr. Frank Haney 1 Inhalt 1. Problemstellung 2. Der SQL-Tuning-Advisor (STA) 3. Anlegen und Implementieren von SQL-Profilen

Mehr

Download:.../~rieche. gehalten am 2. Februar 2004. Stephan Rieche. Vortrag. Thema: Index Selection. von. Seminar Advanced Data Warehouse

Download:.../~rieche. gehalten am 2. Februar 2004. Stephan Rieche. Vortrag. Thema: Index Selection. von. Seminar Advanced Data Warehouse Seminar Advanced Data Warehouse Thema: Index Selection Vortrag von Stephan Rieche gehalten am 2. Februar 2004 Download:.../~rieche Inhalt des Vortrages 1. Einleitung - Was ist das Index Selection Problem?

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

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

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

SQL Intensivpraktikum SS 2008

SQL Intensivpraktikum SS 2008 SQL Intensivpraktikum SS 2008 SQL en Einfache en Eingabe arg 1 arg 2 führt Aktion durch Ergebnis Wert Ausgabe arg n SQL1 basierend auf OAI-Kurs Copyright Oracle Corporation, 1998. All rights reserved.

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

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

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 Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL 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

Mehr

Änderungen erkennen Schneller handeln Stefan Panek. Senior Consultant Christoph Jansen. Consultant 23.10.2008

Änderungen erkennen Schneller handeln Stefan Panek. Senior Consultant Christoph Jansen. Consultant 23.10.2008 Änderungen erkennen Schneller handeln Stefan Panek. Senior Consultant Christoph Jansen. Consultant 23.10.2008 Seit der Datenbankversion 9i bietet Oracle das Feature Change Data Capture an. Aber was genau

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

Oracle und.net sind ein populäres Gespann. Doch wie lassen sich Oracle Features mit.net nutzen?

Oracle und.net sind ein populäres Gespann. Doch wie lassen sich Oracle Features mit.net nutzen? Betrifft Autor Oracle und.net im n-tier Umfeld Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (April 2003) Quelle Aus unserer Projekterfahrung Einführung Oracle und.net sind ein populäres

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

Schlüsselworte Data Guard, Standby Datenbank, RMAN, Backup, Restore, Recovery

Schlüsselworte Data Guard, Standby Datenbank, RMAN, Backup, Restore, Recovery Betrifft Standby Datenbanken Backup Art der Info Lösungskonzept (November 2002) Autor Irina Flegler (irina.flegler@trivadis.com) Martin Wunderli (martin.wunderli@trivadis.com) Quelle Beratungstätigkeit

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

3. Architektur eines DBS (Oracle)

3. Architektur eines DBS (Oracle) 3. Architektur eines DBS (Oracle) aus Sicht des Datenbank Server Rechners Connectivity Komponente(n) des DBS (z.b. Oracle Listener) Installation ORACLE_HOME Instanz ORACLE_SID Datenbank Oracle: 1 (aktive)

Mehr

Martin Wunderli (martin.wunderli@trivadis.com)

Martin Wunderli (martin.wunderli@trivadis.com) Betrifft Standby Aber logisch! Art der Info Lösungskonzept (Januar 2003) Autor Quelle Martin Wunderli (martin.wunderli@trivadis.com) Beratungstätigkeit Schlüsselworte Data Guard, Logische Standby Datenbank

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

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

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt DBS ::: SERIE 5 Die Relation produkt enthält Hersteller, Modellnummer und Produktgattung (pc, laptop oder drucker aller Produkte. Die Modellnummer ist (der Einfachheit halber eindeutig für alle Hersteller

Mehr

Informatik Datenbanken SQL-Einführung

Informatik Datenbanken SQL-Einführung Informatik Datenbanken SQL-Einführung Gierhardt Inhaltsverzeichnis 1 Vorbemerkungen 1 2 Auswahl-Abfragen mit SELECT 2 2.1 Selektion...................................... 2 2.2 Projektion.....................................

Mehr

Mit Transbase Hypercube Data Warehouse Anwendungen effizient betreiben. Die Hypercube-Technologie

Mit Transbase Hypercube Data Warehouse Anwendungen effizient betreiben. Die Hypercube-Technologie Mit Transbase Hypercube Data Warehouse Anwendungen effizient betreiben Transbase Hypercube ist eine Transbase -Option, die die innovative Hypercube-Technologie für komplexe analytische Anwendungen (OLAP)

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

Themenblock: Erstellung eines Cube

Themenblock: Erstellung eines Cube Themenblock: Erstellung eines Cube Praktikum: Data Warehousing und Data Mining Einführung relationale Datenbanken Problem Verwaltung großer Mengen von Daten Idee Speicherung der Daten in Form von Tabellen

Mehr

Teil 7: Data Warehouses und neuere SQL-Konstrukte

Teil 7: Data Warehouses und neuere SQL-Konstrukte 7. Data Warehouses und neuere SQL-Konstrukte 7-1 Teil 7: Data Warehouses und neuere SQL-Konstrukte Literatur: Kemper/Eickler: Datenbanksysteme, 7. Aufl., Kap. 17, Oldenbourg, 2009. Elmasri/Navathe: Fundamentals

Mehr

SQL Performance - Tips Do's & Don'ts

SQL Performance - Tips Do's & Don'ts SQL Performance - Tips Do's & Don'ts S.K. Consulting GmbH, München DB2_SQL_PERF - 1 - Inhaltsverzeichnis I. Richtlinien bei der Verwendung von SQL 1.1. In Programmen "verbotene" SQL- Anweisungen 1.2 SQL

Mehr

Objektrelationale, erweiterbare Datenbanken WS 04/05

Objektrelationale, erweiterbare Datenbanken WS 04/05 Eidgenössische Technische Hochschule Zürich Swiss Federal Institute of Technology Zurich Institut für Informationssysteme Dr.C.Türker Objektrelationale, erweiterbare Datenbanken WS 0405 Übung 8 Aufgabe

Mehr

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine.

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine. Kapitel 2 Datenverwaltung durch SQL Server Wir wollen das obige Skript zwei Mal laufen lassen, einmal mit und einmal ohne eingeschalteten Schreibcache der Festplatte. Für eine lokale Festplatte können

Mehr

Stichwortverzeichnis. Iron Werther. Business Intelligence

Stichwortverzeichnis. Iron Werther. Business Intelligence Stichwortverzeichnis Iron Werther Business Intelligence Komplexe SQL-Abfragen am Beispiel eines Online-Shops. Inkl. Testdatenbank mit über zwei Millionen Datensätzen ISBN (Buch): 978-3-446-43580-3 ISBN

Mehr

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133.

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133. Page 1 of 7 Betrifft: Java oder PL/SQL? Art der Info: Technische Background Info Autor: Guido Schmutz (guido.schmutz@trivadis.com) Quelle: Aus unserer Schulungs- und Beratungstätigkeit Mit Oracle8.1 besteht

Mehr

First. Kapitel 4Functions. Deterministische und nicht-deterministische Funktionen

First. Kapitel 4Functions. Deterministische und nicht-deterministische Funktionen First Kapitel 4Functions 4 SQL-Funktionen Eine Funktion ist ein spezieller Typ von Befehl aus dem Befehlsvorrat von SQL, und jeder SQL-Dialekt implementiert diesen Befehlsvorrat anders. Im Grunde sind

Mehr

Multidimensionales Datenmodell, Anfrageverarbeitung und Anfrageoptimierung

Multidimensionales Datenmodell, Anfrageverarbeitung und Anfrageoptimierung Multidimensionales Datenmodell, Anfrageverarbeitung und Anfrageoptimierung Grundbegriffe Dimensionen, Fakten/Kennzahlen Eigenschaften von multidimensionalen Anfragen Relationale Umsetzung von Anfragen

Mehr

SQL. Abfragesprache Datenmanipulation - DML

SQL. Abfragesprache Datenmanipulation - DML SQL Abfragesprache Datenmanipulation - DML SQL DML-Operationen DML = Data Manipulation Language Sprache zur Veränderung der Daten Operationen Daten selektieren Daten einfügen Daten ändern Daten löschen

Mehr

StructuredQueryLanguage(SQL)

StructuredQueryLanguage(SQL) StructuredQueryLanguage(SQL) Themen: ErstelenundÄndernvonTabelen AbfragenvonDaten Einfügen,ÄndernundLöschenvonDaten Erstelennutzerde niertersichten(views) 2012Claßen,Kempa,Morcinek 1/23 SQL Historie System

Mehr

Oracle Datenbank / Ubuntu

Oracle Datenbank / Ubuntu Oracle Datenbank / Ubuntu Sebastian Gath & Hannes Schwarz Seminar Database Tuning & Administration Universität Konstanz - SS 2007 Administration Vorbereitung Zeitmessung Erste Zeitmessung 2 Ausgangssituation

Mehr

SQL-Anweisungen. SELECT (SQL Data Query Language)

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

Mehr

7 Die Reorganisation von DB2

7 Die Reorganisation von DB2 Ab und an sollte eine Tabelle reorganisiert werden. Besonders, nachdem größere Datenmengen eingefügt oder gelöscht wurden, muß über eine Reorganisation nachgedacht werden. Eine optimale Performance ist

Mehr

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1 Fachhochschule Kaiserslautern Fachbereiche Elektrotechnik/Informationstechnik und Maschinenbau Labor Datenbanken Versuch 1 : Die Grundlagen von MySQL ------------------------------------------------------------------------------------------------------------

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

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

Mehr

Einführung in SQL mit Oracle

Einführung in SQL mit Oracle Seminar Einführung in SQL mit Oracle von Prof. Dr. Rainer Schwenkert Hochschule München c Vervielfältigung nur mit Zustimmung des Autors Themenbereiche SQL-Historie Wichtige DDL- und DML-Anweisungen Der

Mehr

Vorsicht bei parallelen Abfragen eines Oracle RAC auf Multithreading-Chipsätzen

Vorsicht bei parallelen Abfragen eines Oracle RAC auf Multithreading-Chipsätzen Der Artikel stellt Test-Ergebnisse zur Skalierbarkeit und Performance des Oracle RAC vor. Getestet wurde auf der 10gR2-Chip-Multithreading-Architektur UltraSPARC T2, die auch unter ihrem Codenamen Niagara

Mehr

Oracle 9i Einführung. Performance Tuning. Kurs. Teil 9 Sortiervorgänge. Universität Hannover. Sortiervorgänge. Migration. Konfiguration.

Oracle 9i Einführung. Performance Tuning. Kurs. Teil 9 Sortiervorgänge. Universität Hannover. Sortiervorgänge. Migration. Konfiguration. Kurs Oracle 9i Einführung Performance Tuning Teil 9 Anhang Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 14 Seite 1 von 14 Agenda 1. Einführung 2. 3. 4. Der Sortiervorgang 5. 6. Statische Informationen

Mehr

Michaela Weiss 01. April 2015. Lerneinheit 4: Relationale Datenbanken am Beispiel von MySQL

Michaela Weiss 01. April 2015. Lerneinheit 4: Relationale Datenbanken am Beispiel von MySQL Michaela Weiss 01. April 2015 Lerneinheit 4: Relationale Datenbanken am Beispiel von MySQL Seite 2 Datenbanken Allgemeines: Datenbank(management)systeme ermöglichen die Speicherung großer Datenmengen Kennzeichen

Mehr

Performanceoptimierung mit Exadata Verarbeitung extremer Datenmengen mit PL/SQL basierter Datenbewirtschaftung (Erfahrungsbericht)

Performanceoptimierung mit Exadata Verarbeitung extremer Datenmengen mit PL/SQL basierter Datenbewirtschaftung (Erfahrungsbericht) Performanceoptimierung mit Exadata Verarbeitung extremer Datenmengen mit PL/SQL basierter Datenbewirtschaftung (Erfahrungsbericht) Christian Haag, DATA MART Consulting Consulting Manager Oracle DWH Team

Mehr

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R VII-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

5. Datenabfrage mit SQL 14

5. Datenabfrage mit SQL 14 Informationsbestände analysieren Datenabfrage mit SQL 5. Datenabfrage mit SQL 14 5.1. Einige Infos zu SQL SQL wurde Ende der 70er Jahre in den IBM Labors entwickelt und später als Standard für relationale

Mehr

SQL Tipps und Tricks Part III 08.02.2012

SQL Tipps und Tricks Part III 08.02.2012 1/40 PHP-User-Group Stuttgart 08.02.2012 Datenbank- und SQL-Performance Erkennen warum eine SQL-Abfrage langsam ist SQL Tipps und Tricks aus der Praxis 2/40 Wer Wer bin bin ich ich? Thomas Wiedmann n+1

Mehr

Oracle Datenbank Tuning

Oracle Datenbank Tuning DNDGLD,QIRUPDWLRQ 7HFKQRORJ\ Oracle Datenbank Tuning Author: Martin Zahn Copyright 2000 Akadia AG All rights reserved Akadia AG Information Technology Arvenweg 4 CH-3604 Thun Tel 033 335 86 20 Fax 033

Mehr

SQL Cockpit & SAP HANA Prüfen Sie Ihre SQL Abfragen auf HANA-Tauglichkeit

SQL Cockpit & SAP HANA Prüfen Sie Ihre SQL Abfragen auf HANA-Tauglichkeit SQL Cockpit & SAP HANA Prüfen Sie Ihre SQL Abfragen auf HANA-Tauglichkeit Johann Fößleitner Cadaxo GmbH email: johann.foessleitner@cadaxo.com Twitter: @foessleitnerj Agenda 1 SAP HANA Integrationsszenarien

Mehr

IBM Informix Newsletter Ausgabe Juni 2013

IBM Informix Newsletter Ausgabe Juni 2013 IBM Informix Newsletter Ausgabe Juni 203 Willkommen zum IBM Informix Newsletter Inhaltsverzeichnis Aktuelles... TechTipp: In Transaktion? - Wie erkenne ich, ob eine TA offen ist?...2 TechTipp: RANK() -

Mehr

Manuelles Oracle SQL Tuning

Manuelles Oracle SQL Tuning Manuelles Oracle SQL Tuning Martin Decker ora-solutions.net D/A/CH Schlüsselworte Optimizer, SQL Tuning, Performance, Explain Plan, Hints, Einleitung Der Oracle Cost-Based Optimizer ist die zentrale Komponente

Mehr

IO Performance in virtualisierten Umgebungen

IO Performance in virtualisierten Umgebungen IO Performance in virtualisierten Umgebungen Bruno Harsch El. Ing. HTL/FH Managing Partner Tel +41 52 366 39 01 bruno.harsch@idh.ch www.idh.ch IDH GmbH Lauchefeld 31 CH-9548 Matzingen 2 Die Firma IDH wurde

Mehr

3 Indizes. 3.1 Indexarchitektur von SQL Server. SQL Server 2008: Datenbankentwicklung

3 Indizes. 3.1 Indexarchitektur von SQL Server. SQL Server 2008: Datenbankentwicklung 3 Indizes 3.1 Indexarchitektur von SQL Server Die folgende Abbildung zeigt die Organisationsstruktur einer Tabelle. Eine Tabelle befindet sich in einer oder mehreren Partitionen, und jede Partition enthält

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

Dipl. Inf. Eric Winter. PostgreSQLals HugeData Storage Ein Erfahrungsbericht

Dipl. Inf. Eric Winter. PostgreSQLals HugeData Storage Ein Erfahrungsbericht Dipl. Inf. Eric Winter Entwicklungsleiter PTC GPS-Services GmbH PostgreSQLals HugeData Storage Ein Erfahrungsbericht Inhalt 1. Problembeschreibung 2. Partielle Indexierung 3. Partitionierung 1. Vererbung

Mehr

zwei verschiedene Darstellungsformen derselben Abfrage.

zwei verschiedene Darstellungsformen derselben Abfrage. SQL Sprache Die strukturierte Abfragesprache SQL (englisch: Structured Query Language) bildet einen Standard zur Formulierung von Abfragen. Das SQL und das Abfragefenster bilden zwei verschiedene Darstellungsformen

Mehr

Datentransfer zwischen SAS 8.2 und MS SQL-Server bzw. Oracle mit ODBC

Datentransfer zwischen SAS 8.2 und MS SQL-Server bzw. Oracle mit ODBC Data Management Datentransfer zwischen SAS 8.2 und MS SQL-Server bzw. Oracle mit ODBC Paul Eberhard Rudolph, Peter Havemann Forschungsinstitut für die Biologie landw. Nutztiere 18196 Dummerstorf rudolph@fbn-dummerstorf.de

Mehr

Unlimited Controlling

Unlimited Controlling smcolap Unlimited Controlling Heute müssen beliebige Bereiche eines Unternehmens schnell und effizient analysiert werden. Dabei darf es keine Rolle spielen, wo die Daten liegen und in welcher Relation

Mehr