Der Ausführungsplan das unbekannte Wesen

Größe: px
Ab Seite anzeigen:

Download "Der Ausführungsplan das unbekannte Wesen"

Transkript

1 Der Ausführungsplan das unbekannte Wesen Martin Hoermann ORDIX AG Paderborn Wiesbaden Münster Köln Neu-Ulm Zusammenfassung Die Antwortzeit eines SQL Befehls bei gegebenem Datenbestand und Datenbankstrukturen wird im Wesentlichen durch den Ausführungsplan bestimmt. Die Interpretation eines Ausführungsplans und die bewusste Auswahl alternativer Pläne versetzt einen Datenbankadministrator oder Programmierer in die Lage, Performanceverbesserungen im Bereich von Faktoren zu erreichen. Dieser Beitrag stellt die Ermittlung eines Ausführungsplans vor, diskutiert die wichtigsten Zugriffs- und Joinstrategien, sowie weitere Elemente des Ausführungsplans. Anschließend werden verschiedene Varianten zur Beeinflussung von Ausführungsplänen erörtert. Abschließend stellt der Beitrag verschiedene Bewertungskriterien gegenüber. Dieser Beitrag konzentriert sich auf Ausführungspläne von Selects. Einleitung Ein Hase und ein Rehbock hatten einst ein Techtelmechtel. Daraus hervorgegangen ist der bayerische gehörnte Hase. Nun verloren auch andere bayerische Gattungen mehr und mehr die Hemmungen voreinander und crisensus crisensus, oder crisensus bavaricus, erblickte das Mondlicht der Welt der Wolpertinger. Ähnlich wie der Wolpertinger ist auch der Ausführungsplan für viele ein unbekanntes Wesen. Es wird von Plänen berichtet, welche nicht existieren. Mystifizierungen und goldene Regeln versprechen schöne Ergebnisse, auch ohne eine Analyse. Tatsächlich lässt sich ein Ausführungsplan jedoch recht leicht in seine Bestandteile zerlegen, interpretieren und optimieren. Wie die Bestandteile des Wolpertingers: Hirschgeweih, Hasenkörper, Entenfüße usw. sind auch die Teile eines Ausführungsplans den meisten doch sehr bekannt...

2 Abb. 1: Der Wolpertinger Ermittlung des Ausführungsplans Es gibt zahlreiche Möglichkeiten, zu einem SQL Befehl den Ausführungsplan zu ermitteln. Die einfachste Variante ist sicherlich in SQL*Plus den Befehl set autotrace on abzusetzen. Zuvor muss die Tabelle plan_table mit dem Skript utlxplan.sql angelegt werden. In Oracle 10g ist dies nicht mehr notwendig. Eine alternative Variante bietet der Befehl explain plan for. Hierbei muss die Tabelle plan_table allerdings mit SQL ausgelesen werden. Pläne zu allen SQL Befehlen einer Session lassen sich aus der Trace Datei mit tkprof ermitteln. Ausführungspläne zu SQL Befehlen aus Statspack lassen sich mit dem Skript sprepsql.sql unter Angabe des Hash Value ermitteln. Für aktuelle SQL Befehle ist der Ausführungsplan in der View v$sql_plan enthalten, das korrekte Auslesen ist allerdings nicht trivial. Ausführungsplan lesen Einen umfangreichen Ausführungsplan zu lesen und zu interpretieren, bedarf grundsätzlich einiger Übung. Natürlich ist es möglich, eine wissenschaftliche Erläuterung zum Lesen von Ausführungsplänen zu geben, aber von zu traversierenden Bäumen zu sprechen ist für den Normalverbraucher doch etwas zu abstrakt. Wie die hebräische und arabische Sprache liest sich der Ausführungsplan von rechts nach links und von oben nach unten. Jedoch lässt sich, ausgehend von der Ergebnismenge zurück zu den Daten, auch eine umgekehrte Lesart vertreten SELECT STATEMENT 6 NESTED LOOPS 5 Verbinde 2 und 4 TABLE ACCESS BY INDEX ROWID a 2 INDEX RANGE SCAN a_idx 1 TABLE ACCESS BY INDEX ROWID b 4 INDEX RANGE SCAN b_idx 3 Der Autor bevorzugt SQL Befehle in Teile zu zerlegen und für die einzelnen Teile Ausführungspläne zu optimieren. Anschließend ist zu überlegen, wie Teilkomponenten optimal miteinander zu verknüpfen sind. Diese Methode führt meistens, aber nicht zwingend zu guten Ausführungsplänen. In einigen Fällen kann es sinnvoll sein, z. B. optimierte Subselect oder

3 Inner Selects auch als Join zu schreiben, auch wenn diese Form unter Umständen schlechter lesbar ist. Wie die Architekten sagen: Form follows function. Aufbau Ein Ausführungsplan besteht immer aus einem oder mehreren Zugriffen auf Objekte, meist Segmenten. Bei mehreren Zugriffen werden die Ergebnismengen miteinander verknüpft. Hierzu stehen verschiedene Joinstrategien zur Verfügung. Mit Mengenoperatoren lassen sich gleichartige Ergebnismengen verbinden (z. B. UNION ALL). Die nächsten beiden Kapitel beleuchten Zugriffs- und Joinstrategien intensiv. Zur weitergehenden Verarbeitung von Ergebnismengen stehen zahlreiche Varianten von Sorts über Groups bis hin zu Connect By und Filter Operationen zur Verfügung. Zugriffsstrategien Die sicherlich einfachste Zugriffsstrategie ist der Full Table Scan (FTS). Unter Verwendung von Multiblock I/O (db_file_multiblock_read_count) liest der Oracle Prozess alle Blöcke der Tabelle in den Block Buffer oder in die PGA bei parallelen FTS. Dort werden die einzelnen Zeilen bzgl. WHERE Bedingung, nachgelagerten Zugriffen usw. verarbeitet. Der FTS ist in der Regel bei großen Ergebnismengen oder in Kombination mit Hash Joins sehr effizient. Was genau groß bedeutet, ist von sehr vielen Faktoren abhängig. Der FTS wird oft mit langsam assoziiert, ist jedoch eine ernstzunehmende Zugriffsstrategie. Bei großen Tabellen und kleinen Ergebnismengen ist der Full Table Scan oft ein Hinweis auf fehlende Indizes SELECT STATEMENT 2 TABLE ACCESS FULL A 1 Eine alternative Zugriffsform auf Tabellendaten ist der Zugriffsplan Table Access by Index ROWID. Bei diesem Zugriff ermittelt der Oracle Prozess über die physikalische Adresse (ROWID) den zu lesenden Block und die Nummer des Datensatzes. Der Zugriff über die ROWID ist die schnellste Möglichkeit, einen Satz aus einer Tabelle zu lesen. Die ROWID stammt in der Regel aus einem vorgelagerten Index Zugriff. Die Alternative zum Full Table Scan ist daher immer ein Index Zugriff plus den Zugriff auf die Tabelle. Die verschiedenen Formen des Index Zugriffs werden nun diskutiert. Der Index Unique Scan wird z. B. verwendet, wenn der Optimizer eine Spalte in einer WHE- RE Bedingung findet und auf dieser Spalte ein Unique Index liegt. In diesem Fall liest der Prozess die Index Blöcke vom Segment Header (Root Block) über die sogenannten Branch Blocks bis hinunter zum Leaf Block. Im Leaf Block findet Oracle dann den Wert mit einer ROWID oder nichts, wenn der Wert nicht existiert. Wird ausschließlich der Wert benötigt, ist der Prozess fertig, ansonsten folgt in der Regel ein Table Access über ROWID. Der Index Unique Scan ist sehr effizient für den Zugriff auf einen Datensatz. Je häufiger ein Unique Scan innerhalb eines Joins aufgerufen wird, desto eher lohnen sich alternative Zugriffsstrategien, wie z. B. der FTS.

4 Findet der Optimizer in der WHERE Bedingung einen Index für eine Treffermenge größer eins und wählt diesen für den Ausführungsplan aus, handelt es sich um einen Index Range Scan. Der Prozess startet wie beim Unique Scan. Abhängig von der WHERE Bedingung sucht der Prozess anschließend solange nach links oder rechts im Index Baum weiter, wie er passende Werte findet. Der Index Range Scan ist effizient für wenige Datensätze. Weiterhin ist der Range Scan in Zusammenhang mit einem Order By effizient, da die Daten bereits sortiert erhoben werden. Je größer die Trefferquote und je umfangreicher die Weiterverarbeitung ist, desto eher lohnt ein Fast Full Index Scan oder ein FTS SELECT STATEMENT 3 TABLE ACCESS BY INDEX ROWID A 2 Daten über Rowid INDEX RANGE SCAN DESCENDING A_IDX 1 Index Rückwärts Beim Index Full Scan traversiert der Oracle Prozess den Index Baum bzgl. seiner logischen Sortierung. Das Ergebnis ist eine sortierte Ergebnismenge. Der Index Full Scan ist effizient, wenn eine sortierte Ergebnismenge, z. B. bedingt durch ORDER BY, benötigt wird. Abhängig von diversen Initialisierungsparametern kann ein Fast Full Index Scan mit anschließender Sortierung oder ein Full Table Scan durchaus performanter sein. Die letzte hier diskutierte Zugriffsstrategie ist der Fast Full Index Scan. Bei dieser Strategie liest der Prozess alle Blöcke eines Index mit Multiblock I/O. Dadurch ist ein sehr schnelles Lesen garantiert. Da in der physikalischen Reihenfolge gelesen wird, ist die Ergebnismenge anschließend nicht mehr sortiert. Der Zugriff ist ausgesprochen effizient, wenn alle benötigten Daten, also WHERE und SELECT, im Index vorhanden sind. In dieser Konstellation ist der Fast Full Index Scan fast immer effizienter als ein Full Table Scan. Bei einer hohen Trefferquote kann der Zugriff wegen des Multiblock I/O auch die Effizienz eines Index Range Scans oder die eines Index Full Scans übertreffen, obwohl ggf. eine anschließende Sortierung notwendig ist. Neben den vorgestellten Zugriffsstrategien gibt es zahlreiche weitere. Hierzu gehören beispielsweise der Index Skip Scan, Index Min/Max Scans, Zugriffe auf partitionierte Segmente, auf Bitmap Indizes, auf externe Tabellen und diverse weitere. Die Kenntnis über Art und Aufbau des Objektes helfen bei der Interpretation und Beurteilung der Zugriffsstrategie weiter. Joinstrategien Die zuvor genannten Zugriffsstrategien liefern jeweils eine Ergebnismenge zurück. Bei der Verknüpfung von mehreren Tabellen oder Indizes müssen die Ergebnismengen miteinander verbunden werden. Dies geschieht mit sogenannten Join Operationen, die jeweils genau zwei Ergebnismengen miteinander verknüpfen. Es existieren drei Formen des Join. - Nested Loop - Sort Merge Join

5 - Hash Join Beim Nested Loop wird für jeden Datensatz der ersten Ergebnismenge die gesamte zweite Ergebnismenge durchsucht. Sind beide Ergebnismengen sehr groß, so ist der Nested Loop i.d.r. die ungünstigste Joinstrategie. Sind die Ergebnismengen sehr klein oder handelt es sich hierbei um ein Cartesian Produkt (jeder mit jedem), stellt der Nested Loop oft eine effiziente Strategie dar. Ist eine Ergebnismenge sehr klein, die andere sehr groß, so ist es wichtig, die kleine gegen die große Menge zu schneiden SELECT STATEMENT 5 NESTED LOOPS 4 Verbinde 1 und 3 TABLE ACCESS FULL a 1 TABLE ACCESS BY INDEX ROWID b 3 INDEX RANGE SCAN b_idx 2 Der Sort Merge Join setzt zwei gleich geordnete Ergebnismengen voraus. Die Sortierung muss dem Join Kriterium genügen. In diesem Fall können die beiden Ergebnismengen sehr effizient miteinander verknüpft werden. Der Sort Merge Join ist effizient bei etwa gleich großen bereits vorsortierten Ergebnismengen. Im Idealfall können zwei Index Organized Tables bzgl. ihres Primary Key extrem effizient verbunden werden, schneller geht s nicht! Der Sort Merge Join ist weniger effizient, je aufwendiger die vorhergehende Sortierung ist. Weniger zu empfehlen ist die Strategie, wenn die Ergebnismengen in Größe stark differieren oder wenn der Join nur wenige Treffer findet SELECT STATEMENT 7 SORT GROUP BY NOSORT 6 hier ist kein Sort mehr notwendig MERGE JOIN 5 verknüpfe 2 und 4, beide sortiert SORT JOIN 2 aber es muss nachsortiert werden INDEX FAST FULL SCAN A_IDX 1 schneller Index Zugriff SORT JOIN 4 TABLE ACCESS FULL B 3 Beim Hash Join wird die vermeintlich kleinere Ergebnismenge in den Speicher gelesen. Bzgl. des Join Kriteriums wird ein Hash Schlüssel berechnet, der einen Zugriff auf die Ergebnismenge mit minimalem Aufwand ermöglicht. Der Aufwand für einen Einzelzugriff ist, bedingt durch den Hash-Algorithmus, effizienter als ein Indexzugriff. Der Hash Join ist sehr effizient, wenn große Ergebnismengen mit kleinen Ergebnismengen verknüpft werden, also auf die erzeugte Hash Tabelle sehr oft zugegriffen wird. Klein steht dabei in Relation zum verfügbaren Speicher für Sortierungen (PGA_AGGREGATE_TARGET bzw. sort_area_size) SELECT STATEMENT 4 HASH JOIN 3 suche zu B Sätzen in der Hash Partition TABLE ACCESS FULL A 1 hier wird ge-hash-t

6 TABLE ACCESS FULL B 2 Der Hash Join ist meist ineffizient, wenn aufgrund der Tabellengröße sehr viele Hash- Partitionen entstehen. Varianten Zu diesen vier Joinstrategien existieren die Unterformen Anti-, Outer-, Cartesian- und Semi- Join. Das Vorgehen ist im Prinzip identisch, lediglich die Auswahl welche Datensätze zusammen passen ist jeweils eine andere. Der Anti-Join ermittelt die Datensätze, zu denen keine korrespondierenden Sätze existieren, z. B. durch die NOT IN Klausel. Der Outer-Join lässt auch Zeilen einer Ergebnismenge zu, wenn keine passenden Sätze in der zweiten Ergebnismenge zu finden sind. Der Semi-Join gibt Datensätze zurück, zu welchen eine Subquery mindestens einen Treffer liefert. Der Semi-Join findet bei der Exists Klausel Anwendung. Der Cartesian-Join verbindet alle Sätze der ersten Ergebnismenge mit allen Sätzen der zweiten Ergebnismenge. Noch ein kleiner Nachtrag zum sogenannten Star-Join und zum Cluster-Join. Diese Operationen können Sie im Ausführungsplan vergeblich suchen, denn beide sind kein Join im eigentlichen Sinn. Vielmehr beschreibt der Star Join ein Konzept zur Verknüpfung von mehreren Tabellen. Im Prinzip geht es hier um eine große Tabelle, welche mit mehreren kleinen voneinander unabhängigen Tabellen zu verbinden sind. Der Join selbst erfolgt mit Hash, Nested Loop oder Sort Merge. Der Cluster-Join besteht aus einen Table Access (Cluster) plus einen Table Access für jede weitere Tabelle verbunden über einen Nested Loop. Keine Join Strategie im eigentlichen Sinn, aber Verknüpfungen von mehreren Ergebnismengen sind beispielsweise Bitmap Merge, Bitmap Or und Bitmap And. Bei diesen Verknüpfungen kann Oracle, im Gegensatz zu Join Operationen, auch mehr als zwei Ergebnismengen miteinander verknüpfen. Weitere Elemente des Ausführungsplans Neben den Zugriffsstrategien und den Joinstrategien gibt es zahlreiche weitere Operationen in einem Ausführungsplan. Die gängigen sind in folgender Liste aufgeführt. - Die oberste Operation ist aus der Menge SELECT, INSERT, UPDATE, DELETE und zeigt an, um welche grundsätzliche Form des Zugriffs es sich handelt. - Vollständige Sortierungen einer Ergebnismenge sind an der Operation Sort (Order By) zu erkennen, Sortierungen von Teilen einer Ergebnismenge, typisch bei der Verwendung von analytischen Funktionen, zeigen die Operation Window (Sort) an. Sortierungen für Gruppierungen arbeiten mit der Operation Sort (Group By) und für Joins mit der Operation Sort (Join). Die Verwendung der Distinct Klausel führt zur Operation Sort (Unique). - Die Auswahl bestimmter Zeilen durch eine Having Klausel ist im Ausführungsplan an der Operation Filter zu erkennen.

7 - Mengenfunktionen wie UNION ALL, MINUS und INTERSECT sind an gleichnamigen Operationen im Ausführungsplan zu erkennen. Die Mengenfunktion UNION wird mit der Operation UNION ALL und einem anschließenden Sort (Unique) verarbeitet. - Die Operation Connect By in ihren verschiedenen Varianten verweist auf hierarchische Abfragen Es gibt zahlreiche weitere Operationen in einem Ausführungsplan. Mit den hier Vorgestellten lassen sich sicherlich weit über 90 % aller SQL Ausführungspläne analysieren. Ausführungspläne beeinflussen Es gibt zahlreiche Möglichkeiten, Ausführungspläne festzulegen, zu forcieren oder zu beeinflussen. Die nachfolgende Liste stellt, ohne einen Anspruch auf Vollständigkeit, mögliche Varianten vor. Dabei kann ein Ausführungsplan natürlich grundsätzlich nur erzwungen werden, wenn das Ergebnis mit diesem Ausführungsplan zustande kommen kann. - Stored Outlines: Ausführungspläne werden in der Datenbank gespeichert und durch Verwendung des Initialisierungsparameters use_stored_outlines verwendet. Diese Variante ist sehr aufwendig, garantiert aber den gewünschten Ausführungsplan. - Hints: Durch Hinweise im SQL Befehl können Zugriffsstrategien, Joinstrategien und ähnliches erzwungen werden. Die Verwendung von Hints stellt in der Programmierung die einfachste Form dar, bestimmte Ausführungspläne zu erzwingen. Hier ein Beispiel für einen Fast Full Index Scan: SELECT /*+ INDEX_FFS (t1 i1) */ c1 FROM t1; - Initialisierungsparameter: es gibt zahlreiche Initialisierungsparameter, welche einen mehr oder weniger signifikanten Einfluss auf die Erstellung von Ausführungsplänen haben. So können z. B. mit optimizer_index_cost_adj oder optimizer_index_caching die geschätzten Kosten beeinflusst werden. Mit star_transformation_enabled und hash_join_enabled lassen sich Joinstrategien vollständig ausschalten. Die Parameter sort_area_size und db_file_multiblock_read_count beeinflussen die tatsächlichen Kosten für bestimmte Operationen und finden dadurch natürlich auch Berücksichtigung durch den kostenbasierten Optimizer (CBO). - Durch neue Indizes oder alternative Speicherformen (IOT) eröffnen sich natürlich grundsätzlich alternative Zugriffsstrategien. - Die Wahl des Optimizer (rule, choose) und beim kostenbasierten Optimizer die Wahl des Optimierungsziels (First Rows, All Rows etc.) haben einen wichtigen Einfluss auf die Strategien, die der Optimizer zur Erstellung von Ausführungsplänen wählt. First Rows und All Rows stellen aber keine Operationen im Ausführungsplan dar! Ab Oracle 10g steht der regelbasierte Optimizer nicht mehr zur Verfügung. Bei regelbasierten Optimizern haben Statistiken einen wesentlichen Einfluss auf die Erstellung von Ausführungsplänen. Die Statistiken sollten ein möglichst gutes Abbild der tatsächlichen Datenverteilung und der Datenmengen liefern. Es ist allerdings auch möglich und in

8 sehr wenigen Fällen sinnvoll durch falsche Statistiken effizientere Ausführungspläne zu erstellen. Erfolg Messen Die einfachste Beurteilung des Erfolges ist sicherlich die Antwortzeit des SQL Kommandos. Dieses Verfahren ist allerdings unter stark schwankender Datenbanklast nicht reproduzierbar. Weiterhin berücksichtigt es auch die Auswirkungen auf andere Benutzer nicht. So kann zwar ein massiv paralleler Zugriff den Chef glücklich machen, jedoch die gesamte Belegschaft einer Firma der Eieruhr ausliefern. Eine andere Variante ist die Bewertung der Anzahl der Logical Reads. Eine Minimierung der Logical Reads führt fast immer auch zu kürzeren Antwortzeiten bei gleichen Rahmenbedingungen, jedoch ist dieser Zusammenhang nicht zwingend. Der Autor bevorzugt diese Variante, da die Bewertung reproduzierbar ist. Physical Reads sollten in der Regel nicht betrachtet werden, da diese stark abhängig vom aktuellen Caching der Datenbank sind. In einzelnen Fällen macht jedoch auch dies Sinn. call count cpu elapsed disk query current rows Parse Execute Fetch total Die oben aufgeführte Statistik aus einer tkprof Analyse zu einem Ausführungsplan zeigt recht anschaulich die vielfältigen Faktoren bei der Beurteilung von Ausführungsplänen. CPU Zeit bedingt durch logical Reads (query+current), Elapsed Time durch physical Reads (disk) und das in Relation zu der Ergebnismenge (rows) müssen sorgfältig untersucht werden. Verschiedene Ausführungspläne sollten hier abgesehen von der Spalte rows unterschiedliche Aufwände zeigen. Last but not Least stellen die Werte Cost, Card und Bytes im Ausführungsplan eine hilfreiche Unterstützung bei der Bewertung insbesondere von Zwischenschritten dar. Die Kosten einer Operation misst Oracle in der abstrakten Einheit Cost, also eine Art Oracle Dollar zur Unterscheidung von besser und schlechter. Die Anzahl Datensätze wird geschätzt und über die Kardinalität (Card) ausgegeben, ebenso die daraus resultierenden Bytes Id Operation Name Rows Bytes Cost SELECT STATEMENT SORT GROUP BY NOSORT * 2 INDEX RANGE SCAN MESSDATEN_PK

9 Das obige Beispiel zeigt recht anschaulich die Reduzierung der Zeilen (Rows) und daraus resultierend der Datenmenge (Bytes). Die Kosten bewertet der Optimizer dagegen gleich hoch. Die Analyse wurde mit dem Befehl explain plan for und die anschließende Auswertung mit select * from table(dbms_xplan.display( 'PLAN_TABLE' )) durchgeführt. Fazit Von den weit über 150 unterschiedlichen, möglichen Operationen im Ausführungsplan wurde ein repräsentativer Teil vorgestellt. Eine Systematisierung zeigt die einzelnen Gruppen von Operationen (Zugriffsstrategien, Joins usw.) und deren Zusammenspiel. Teile und Herrsche ist das wichtigste Verfahren, um komplexe Ausführungspläne zu analysieren und diese anschließend optimieren zu können. Literatur Die Oracle Dokumentation liefert eine gute Basis für das Verständnis von Ausführungsplänen. Darüber hinaus finden sich unter den Adressen und sehr gute Ergänzungen und Whitepaper. Die mit Abstand umfangreichste Auflistung von Operationen des Ausführungsplans ist unter der Adresse zu finden. Kontaktadresse: ORDIX AG Martin Hoermann Zentrale Paderborn An der Alten Ziegelei 5 Westernmauer D Münster D Paderborn Telefon: +49 (0) (0) info@ordix.de Internet: Eine Vollmondnacht in einem bayrischen Wald. Irgendwo im Gebirge ziehen zwei müde Wanderer ihres Weges. Ein Rascheln erregt ihre Aufmerksamkeit, es kracht und zischt, plötzlich steht ein Tier vor ihnen das einem Alptraum entsprungen zu sein scheint. Sie erinnern sich an das alte bayrische Sprichwort: "Siehst du einen Wolpertinger, sieh zu dass du wegkommst..."

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

Index Rebuild. DOAG Konferenz , Nürnberg. Martin Hoermann Index Rebuild DOAG Konferenz 17.11.2011, Nürnberg Martin Hoermann info@ordix.de www.ordix.de asktom.oracle.com Quelle: asktom.oracle.com/pls/asktom/f?p=100:11:745954239666467::::p11_question_id:2913600659112

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

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

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

Explain verstehen. Hans-Jürgen Schönig.

Explain verstehen. Hans-Jürgen Schönig. Explain verstehen Zielsetzung EXPLAIN... Was versucht uns PostgreSQL zu sagen? Wie kann diese Information genutzt werden? Wie erkenne ich Probleme? Abfragen in PostgreSQL Mehrstufige Ausführung Parser:

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

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

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

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

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

PERFORMANCE TUNING: OVERVIEW

PERFORMANCE TUNING: OVERVIEW ORACLE TUNING TEIL 1 Einführung & Allgemeines PERFORMANCE TUNING: OVERVIEW Schematische Darstellung der wichtigsten Einflussfaktoren auf die Performance Sessions SQL Blockgröße Memory I/O Locks Performance

Mehr

Es geht also im die SQL Data Manipulation Language.

Es geht also im die SQL Data Manipulation Language. 1 In diesem Abschnitt wollen wir uns mit den SQL Befehlen beschäftigen, mit denen wir Inhalte in Tabellen ( Zeilen) einfügen nach Tabelleninhalten suchen die Inhalte ändern und ggf. auch löschen können.

Mehr

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13 Auf einen Blick Vorwort 13 Teil 1 Vorbereitung Kapitel 1 Einleitung 17 Kapitel 2 SQL - der Standard relationaler Datenbanken 21 Kapitel 3 Die Beispieldatenbanken 39 Teil 2 Abfrage und Bearbeitung Kapitel

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

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

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Copyright 2013, Oracle and/or its affiliates. All rights reserved. 1 Effiziente Speicherung für SAP Jörn Bartels Architect Oracle Database Server Technologies 2 Oracle 12c Jörn Bartels Architect Oracle Database Server Technologies 3 1997 Effiziente Speicherung für SAP

Mehr

Abfragen (Queries, Subqueries)

Abfragen (Queries, Subqueries) Abfragen (Queries, Subqueries) Grundstruktur einer SQL-Abfrage (reine Projektion) SELECT [DISTINCT] {* Spaltenname [[AS] Aliasname ] Ausdruck} * ; Beispiele 1. Auswahl aller Spalten SELECT * ; 2. Auswahl

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

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt

Mehr

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15 Vorwort..................................................... 13 Kapitel 1 Einleitung.......................................... 15 Kapitel 2 SQL der Standard relationaler Datenbanken... 19 2.1 Die Geschichte................................

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

Oracle und SQL. Kursinhalte. Kompakt-Intensiv-Training. Oracle und SQL

Oracle und SQL. Kursinhalte. Kompakt-Intensiv-Training. Oracle und SQL Oracle und SQL Kompakt-Intensiv-Training In unsere Schulung "Oracle und SQL" erhalten Sie einen breitgefächerten Überblick über die fachmännische und effektive Nutzung der SQL-Implementierung in Oracle.

Mehr

SQL - Datenbankdesign - Aufbau

SQL - Datenbankdesign - Aufbau SQL - Datenbankdesign - Aufbau Kompakt-Intensiv-Training Unsere fünftägige ANSI SQL Schulung vermittelt Ihnen alle nötigen Kenntnisse zur Erstellung von Datenauswertungen und Programmierung wiederkehrender

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

Analytische Funktionen erfolgreich eingesetzt

Analytische Funktionen erfolgreich eingesetzt Analytische Funktionen erfolgreich eingesetzt Dani Schnider Trivadis AG Glattbrugg, Schweiz Schlüsselworte: Analytische Funktionen, SQL, Performance Optimierung, Data Warehousing Zusammenfassung Analytische

Mehr

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

ORACLE. ORACLE-SQL für Profis. Tuning von ORACLE-SQL (Einführung-2) Januar, ORACLE ORACLE-SQL für Profis Tuning von ORACLE-SQL (Einführung-2) 1 1. Die Oracle Optimizer Die SQL-Optimizer entscheiden grundsätzlich anhand der folgenden Kriterien: Angegebene Syntax für die Anweisung

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

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

SQL als Zugriffssprache SQL als Zugriffssprache Der Select Befehl: Aufbau Select- und From-Klausel Where-Klausel Group-By- und Having-Klausel Union Join-Verbindung Order-By-Klausel Der Update-Befehl Der Delete-Befehl Der Insert-Befehl

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 6 Vertiefung Relationale Algebra Anzeigen von Daten aus mehreren Tabellen Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 22

Mehr

Informix Seminarwoche

Informix Seminarwoche Sehr geehrte Damen und Herren, In der KW48 planen wir eine Informix Seminarwoche mit drei aktuellen Themenbereichen: Backup and Restore, SQL-Optimierung und TimeSeries Data. Mit Backup and Restore möchten

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

Datenbanktuning am Beispiel von Oracle 10g

Datenbanktuning am Beispiel von Oracle 10g Datenbanktuning am Beispiel von Oracle 10g Karsten Förster, 05 IND 27.06.2008 Im Folgenden werden Aspekte zur Leistungssteigerung eines Datenbanksystems betrachtet. Es wird versucht einen möglichst nahen

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

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured

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

Manuelles Oracle SQL-Tuning

Manuelles Oracle SQL-Tuning Der Oracle Cost-Based Optimizer ist eine zentrale Komponente der Datenbank und mittlerweile recht ausgereift. In den seltenen Fällen, in denen er allerdings keinen performanten Ausführungsplan ermitteln

Mehr

Oracle Statistiken Ein Mythos in der Datenbank?

Oracle Statistiken Ein Mythos in der Datenbank? Oracle Statistiken Ein Mythos in der Datenbank? Thorsten Bruhns Seniorberater OPITZ CONSULTING Bad Homburg GmbH Nürnberg, 01.12.2008 Oracle Statistiken - Ein Mythos in der Datenbank? Seite 1 Inhalt Ich

Mehr

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Introduction to Data and Knowledge Engineering. 6. Übung SQL Introduction to Data and Knowledge Engineering 6. Übung SQL Aufgabe 6.1 Datenbank-Schema Buch PK FK Autor PK FK ISBN Titel Preis x ID Vorname Nachname x BuchAutor ISBN ID PK x x FK Buch.ISBN Autor.ID FB

Mehr

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198 Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT INTO) 95 5 Daten abfragen (SELECT) 99 6 Daten aus mehreren Tabellen abfragen (JOIN) 143 7 Unterabfragen

Mehr

1. Eine Trace Datei 6. 1.1. Session Trace 7 1.2. Trace einer beliebigen Session 7 1.3. Probleme beim Erstellen einer Trace Datei 8 1.4.

1. Eine Trace Datei 6. 1.1. Session Trace 7 1.2. Trace einer beliebigen Session 7 1.3. Probleme beim Erstellen einer Trace Datei 8 1.4. rainer@lambertz-c.de Inhaltsverzeichnis 1. Eine Trace Datei 6 1.1. Session Trace 7 1.2. Trace einer beliebigen Session 7 1.3. Probleme beim Erstellen einer Trace Datei 8 1.4. Autotrace 9 2. Trace Datei

Mehr

Indexstrukturen in SQL

Indexstrukturen in SQL Indestrukturen in SQL Anlegen eines Primärinde in SQL: Anlegen eines Sekundärinde in SQL: Bsp: create table Dozenten ( DNr integer primary key, Name varchar(0), Geburt date, ) create [Unique] inde indename

Mehr

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT SQL SQL SELECT Anweisung Mit der SQL SELECT-Anweisung werden Datenwerte aus einer oder mehreren Tabellen einer Datenbank ausgewählt. Das Ergebnis der Auswahl ist erneut eine Tabelle, die sich dynamisch

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

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

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

Oracle Old Features. Uwe Küchler Valentia GmbH Frankfurt am Main

Oracle Old Features. Uwe Küchler Valentia GmbH Frankfurt am Main Oracle Old Features Uwe Küchler Valentia GmbH Frankfurt am Main Schlüsselwörter: Datenbank, Performance, Constraints, ANSI SQL, PL/SQL. Einleitung Bereits im vorigen Jahrtausend hat Oracle Features in

Mehr

Speed up your Query Strategien zur Optimierung von SQL-Queries. Juni 2012 Ulrike Brenner

Speed up your Query Strategien zur Optimierung von SQL-Queries. Juni 2012 Ulrike Brenner Speed up your Query Strategien zur Optimierung von SQL-Queries Juni 2012 Ulrike Brenner Ulrike Brenner Seit 1999 Oracle Entwicklerin Oracle DB 8-11gR2 SQL PL/SQL Oracle Forms/Reports APEX Entwicklerin

Mehr

Hysterie um Histogramme

Hysterie um Histogramme Hysterie um Histogramme Autoren: Michael Lindermann und Roger Niemeyer, ORDIX AG, Paderborn DOAGNews Q4_2005 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die

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

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

Die Vielfalt von Bitmap-Indizes im DWH

Die Vielfalt von Bitmap-Indizes im DWH Die Vielfalt von Bitmap-Indizes im DWH Dominik Schuster areto consulting gmbh Köln Schlüsselworte Bitmap Indizes, Data Warehouse, Star-Schema Einleitung Bei großen und stetig wachsenden Datenmengen steigt

Mehr

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert

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

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

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

Kapitel 10: Relationale Anfragebearbeitung

Kapitel 10: Relationale Anfragebearbeitung Ludwig Maimilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 201/2016 Kapitel 10: Relationale Anfragebearbeitung Vorlesung:

Mehr

Customizing Datensicht erstellen. Erweiterung der Baumstruktur um eigene Sichten

Customizing Datensicht erstellen. Erweiterung der Baumstruktur um eigene Sichten Customizing Datensicht erstellen Erweiterung der Baumstruktur um eigene Sichten TITEL Customizing Datensicht erstellen AUTOR Docusnap Consulting DATUM 26.04.2017 Die Weitergabe, sowie Vervielfältigung

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

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

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language Datenbanksysteme Kapitel 5: SQL Data Manipulation Language Prof. Dr. Peter Chamoni Mercator School of Management Lehrstuhl für Wirtschaftsinformatik, insb. Business Intelligence Prof. Dr. Peter Chamoni

Mehr

1 Einführung... 1 1.1 Ziele und Zielgruppen... 1 1.2 Was erwartet Sie in diesem Buch... 1 1.3 Skripte und Test-Cases... 2 1.4 Danksagung...

1 Einführung... 1 1.1 Ziele und Zielgruppen... 1 1.2 Was erwartet Sie in diesem Buch... 1 1.3 Skripte und Test-Cases... 2 1.4 Danksagung... Inhaltsverzeichnis 1 Einführung........................................................... 1 1.1 Ziele und Zielgruppen.............................................. 1 1.2 Was erwartet Sie in diesem Buch.....................................

Mehr

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis. SQL Lehr- und Forschungseinheit Datenbanken und Informationssysteme Ziele Grundlagen von SQL Beziehung zur relationalen Algebra SELECT, FROM, WHERE Joins ORDER BY Aggregatfunktionen Lehr- und Forschungseinheit

Mehr

Partitioning mit Oracle Text 9i

Partitioning mit Oracle Text 9i Partitioning mit Oracle Text 9i Autor: Andreas Habl, msg systems ag DOAGNews Q1_2005 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der Übersetzung, des Nachdrucks,

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

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

SQL,Teil 2: SELECT. W. Spiegel. Übersicht SELECT. Mehrfache Werte vermeiden: SELECT DISTINCT. Ausgabe ordnen: ORDER BY. Projektion.

SQL,Teil 2: SELECT. W. Spiegel. Übersicht SELECT. Mehrfache Werte vermeiden: SELECT DISTINCT. Ausgabe ordnen: ORDER BY. Projektion. SQL,Teil 2: SELECT W. Spiegel Übersicht SELECT Mehrfache Werte vermeiden: SELECT DISTINCT Ausgabe ordnen: ORDER BY Projektion Selektion: WHERE Join mit SELECT Beispiel Aufgaben 1 SELECT Die SELECT-Anweisung

Mehr

Acht große Oracle-Datenbank-Mythen

Acht große Oracle-Datenbank-Mythen Acht große Oracle-Datenbank-Mythen Robert Barić, ITGAIN Consulting Gesellschaft für IT-Beratung mbh Die IT steckt voller Mythen. Man denke nur an die sich in den Köpfen von Anwendern noch immer haltende

Mehr

In diesem Abschnitt wollen wir uns mit einem besonderen Thema widmen. Dem Thema SQL-JOIN.

In diesem Abschnitt wollen wir uns mit einem besonderen Thema widmen. Dem Thema SQL-JOIN. 1 In diesem Abschnitt wollen wir uns mit einem besonderen Thema widmen. Dem Thema SQL-JOIN. Logisch angesiedelt ist dieses Thema bei dem SQL-DML Anweisungen, da es sich um einen besonderen Aspekt bei Select

Mehr

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press Marcus Throll, Oliver Bartosch Einstieg in SQL Verstehen, einsetzen, nachschlagen Galileo Press Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

IBM Informix SQL. Seminarunterlage. Version 11.04 vom

IBM Informix SQL. Seminarunterlage. Version 11.04 vom Seminarunterlage Version: 11.04 Version 11.04 vom 27. April 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

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

Aufbau Datenbanksysteme

Aufbau Datenbanksysteme Aufbau Datenbanksysteme Lehrveranstaltung Datenbanktechnologien Prof. Dr. Ingo Claßen Prof. Dr. Martin Kempa Hochschule für Technik und Wirtschaft Berlin Speichersystem c Ingo Claßen, Martin Kempa Softwarearchitektur

Mehr

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage. SELECT-FROM SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage. Inhaltsverzeichnis 1 Der grundlegende Aufbau 2 Doppelte

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

Oracle-Statistiken im Data Warehouse effizient nutzen

Oracle-Statistiken im Data Warehouse effizient nutzen Oracle-Statistiken im Data Warehouse effizient nutzen Reinhard Mense ARETO Consulting Köln Schlüsselworte: DWH, Data Warehouse, Statistiken, Optimizer, Performance, Laufzeiten Einleitung Für die performante

Mehr

Prüfungsnummer: 70-461-deutsch. Prüfungsname: Querying. Version: Demo. SQL Server 2012. http://zertifizierung-portal.de/

Prüfungsnummer: 70-461-deutsch. Prüfungsname: Querying. Version: Demo. SQL Server 2012. http://zertifizierung-portal.de/ Prüfungsnummer: 70-461-deutsch Prüfungsname: Querying Microsoft SQL Server 2012 Version: Demo http://zertifizierung-portal.de/ 1.Sie sind als Datenbankadministrator für das Unternehmen it-pruefungen tätig.

Mehr

Inhalt. Dr. Frank Haney 17.5.2005 1

Inhalt. Dr. Frank Haney 17.5.2005 1 Inhalt SQL-Optimierung Grundlagen Logische und physische Optimierung CBO Funktionsweise Entscheidungsgrundlagen Zugriffspfade Statistiken für den Optimizer Initialisierungsparameter Optimizer Hints Dynamic

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

8 DML (1) Daten abfragen

8 DML (1) Daten abfragen 8 DML (1) Daten abfragen Eine Datenbank enthält eine Vielzahl verschiedener Daten. Abfragen dienen dazu, bestimmte Daten aus der Datenbank auszugeben. Dabei kann die Ergebnismenge gemäß den Anforderungen

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

Inhaltsverzeichnis. Installationsübersicht. A. Installationsübersicht

Inhaltsverzeichnis. Installationsübersicht. A. Installationsübersicht Inhaltsverzeichnis A. Installationsübersicht B. und Optimierungsbereiche B.1 Hardware B.2 OperatingSystem Z/OS B.3 Databasemanagementsystem DB2 B.4 Applikation C. Organisation BSS_Chart-library 1 Installationsübersicht

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

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

Tuning the Mobile Server

Tuning the Mobile Server DOAG Konferenz 20. - 22.11.2012 Tuning the Mobile Server Philipp Loer ppl@ordix.de www.ordix.de Agenda Einleitung Grundlagen Performance-Optimierung Fazit Tuning the Mobile Server, Philipp Loer, DOAG 2012

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

Datenbank Objekte (Tabellen, Segemente, Extents, Blöcke)

Datenbank Objekte (Tabellen, Segemente, Extents, Blöcke) Datenbank Objekte (, Segemente,, Blöcke) 5. Juni 2007 Datenbank Objekte (, Segemente,, Blöcke) Datenbank Objekte (, Segemente,, Blöcke) Aufbau eines Datenblocks Zeilenverkettung und -verschiebung Freispeicherverwaltung

Mehr

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung Informa=onssysteme Sommersemester 2015 6. Sichten, Integrität und Zugriffskontrolle Vorlesung "Informa=onssysteme" Sommersemester 2015 Überblick Sichten Integritätsbedingungen Zugriffsrechte SQL- Schema und SQL- Katalog Das Informa=onsschema

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

DOAG 2015. Demo Kino: Advisors, Monitoring Werkzeuge in der Datenbank Ulrike Schwinn Business Unit Database Oracle Deutschland B.V.

DOAG 2015. Demo Kino: Advisors, Monitoring Werkzeuge in der Datenbank Ulrike Schwinn Business Unit Database Oracle Deutschland B.V. DOAG 2015 Demo Kino: Advisors, Monitoring Werkzeuge in der Datenbank Ulrike Schwinn Business Unit Database Oracle Deutschland B.V. & Co KG Monitoring Werkzeuge, Advisors... Einfaches Framework zum Monitoring

Mehr

8 Access-Abfragen migrieren

8 Access-Abfragen migrieren Leseprobe aus Access und SQL Server http://www.acciu.de/asqllesen 8 Access-Abfragen migrieren Mit der Migration der Tabellen Ihrer Anwendung zu einer SQL Server-Datenbank und dem Verknüpfen der SQL Server-Tabellen

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

Tipps & Tricks: Verbesserungen zum Thema Performance Tuning

Tipps & Tricks: Verbesserungen zum Thema Performance Tuning Tipps & Tricks: Verbesserungen zum Thema Performance Tuning Bereich: DBA, Tuning Erstellung: 02/2003 MP Versionsinfo: 9.2.0.8, 10.2.0.4, 11.1.0.6 Letzte Überarbeitung: 07/2009 MM Als PDF Downloaden! Verbesserungen

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

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

Oracle 9i Einführung Performance Tuning

Oracle 9i Einführung Performance Tuning Kurs Oracle 9i Einführung Performance Tuning Teil 13 Cluster Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 14 Seite 1 von 14 1. Anordnung von Zeilen in einer Tabelle 2. Einführung 3. Cluster 4. Typen

Mehr

Microsoft Access 2010 SQL nutzen

Microsoft Access 2010 SQL nutzen Microsoft Access 2010 SQL nutzen Welche Bestellungen hat Kunde x aufgegeben? Welche Kunden haben noch nie bestellt? Wer hat welche Bestellungen von welchen Kunden aufgenommen? S(tructured)Q(uery)L(anguage)

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