Sebastian Winkler CarajanDB GmbH CarajanDB GmbH

Größe: px
Ab Seite anzeigen:

Download "Sebastian Winkler CarajanDB GmbH CarajanDB GmbH"

Transkript

1 Sebastian Winkler CarajanDB GmbH

2 Experten mit über 20 Jahren Oracle Erfahrung Firmensitz in Erftstadt bei Köln Spezialisten für Oracle Datenbank Administration Hochverfügbarkeit (RAC, Data Guard, Failsafe, etc.) Einsatz der Oracle Standard Edition Oracle Migrationen (HW, Unicode, Konsolidierung, Standard Edition) Replikation (GoldenGate, SharePlex, Dbvisit) Performance Tuning Database Cloning (Actifio, Delphix, CloneDB) Fernwartung Schulung und Workshops (Oracle, Toad) 2

3 Überblick Warum und Wie? Entscheidungshilfe Vorteile, Ziele und Analyse Partitionierungsarten Standard, Composite und Erweiterungen Abschluss Neues mit 12c und Fazit 3

4 - Warum? - Wie?

5 (sehr) große Datenbanken Vor Jahren groß = heute Normalfall Very Large Database und Data Warehouse Größere Datenbanken = größere Herausforderungen im Betrieb Größe, Transaktionsvolumen, Aktivität, Parallele User, Abfragekomplexität, Antwortzeiten, Verfügbarkeit Standardtechnik nicht ausreichend Partitionierung eine der wichtigsten Techniken 5

6 Partitionierung als Vorteil für Administration von (sehr) großen Datenbanken Vereinfacht und beherrschbar durch Löschen, Hinzufügen, Verschieben und Archivieren von Partitionen Oracle Optimizer Effizientere Abfrage-Bearbeitung durch Partition Pruning, partitionsweise Joins und Parallelisierung 6

7 Partitionen arbeiten auf Segmentebene Ein einzelnes Segment wird Tabellen, Indizes physisch Datenbank logisch nach einer bestimmten Vorschrift Partitionierungskriterium beim Anlegen der Tabelle festgelegt Wertebereichen, Wertelisten oder Hash-Werten in mehrere Segmente aufgeteilt. Partitionen Neue Daten werden automatisch einsortiert Datei OS-Block Tablespace Segment / Partition Extent ORACLE Block 7

8 - Vorteile Partitionierung - Optimierungsziele - Einzelfallanalyse

9 Partitionen sind physikalisch unabhängig Ablage und Verwaltung in separaten Tablespaces mit unterschiedlichen Speicherparametern (z.b. PCTFREE, COMPRESSION) möglich Transparent Aus Anwendungssicht alle Daten über den Namen der partitionierten Tabelle les- und schreibbar Optimizer Kennt die physikalisch Aufteilung der Tabelle Kann entsprechend optimierte Zugriffspfade generieren Indizes Zugehörige Indizes lassen sich ebenfalls abhängig oder unabhängig partitionieren Kleinere Partitionssegmente ermöglichen bessere Verwaltbarkeit und effizienteren Aufbau 9

10 Partition Pruning Partitionen gegenüber logischem Objekt eine kleinere Einheit Je nach WHERE-Klausel profitiert eine Table-Scan-Operation durch ausklammern bestimmter Partitionen Flachere Index-Bäume Partitionsspezifisch aufgebaute Index-Bäume können flacher ausfallen Weniger Ebenen reduzieren den I/O-Aufwand bei Zugriffen Partitionsweise Tabellenoperationen Joins lassen sich auf korrespondierende Partitionen reduzieren Partitionsweise Joins lassen sich zudem parallel auf den physisch getrennten Daten ausführen 10

11 Vereinfachung und Verkürzung Partitionen können einzeln hinzugefügt, aufgeteilt und gelöscht werden Datenaustausch zwischen Tabellen und Partitionen über effiziente Switch- Operationen EXCHANGE PARTITION (ohne Locking) 11

12 Vorteile prinzipiell möglich Konkreter Nutzen vom Einzelfall abhängig Voraussetzung: sorgfältige Analyse vor der Implementierung Optimierungsziele priorisieren effizientere Verwaltung oder Optimierung der Zugriffe? Größe der Objekte Partitionierung einer Tabelle mit wenigen Zeilen sinnvoll? 12

13 Art der Zugriffe OLTP Anwendungen profitieren durch sehr selektive Indexzugriffe generell weniger Batch-Anwendung oder DWH mit Scans auf große Bereiche profitieren von dichteren Partitionsbereichen und flacheren Indexstrukturen Art der Datenverwaltung Lässt sich bspw. das Partitionierungskriterium der Tabelle mit dem Löschzyklus einer Rolling-Window-Anwendung synchronisieren 13

14 Partitionierung ist zu empfehlen: Wenn alle zu einer Priorisierung passenden Kriterien erfüllt werden. bei großen Tabellen - im 2-stelligen GB-Bereich wenn große Datenmengen über viele Jahre zur Verfügung stehen müssen (In Database Archiving) 14

15 - Range, List, Hash - Composite - Extension

16 Standardtechniken Wertebereichen - Range Wertelisten - List Hash-Werten - Hash Erweiterungen Intervall, Referenziert, Virtuelle Spalten Zusammengesetzt Composite- oder Sub-Partitionierung zwei Arten werden hierarchisch miteinander kombiniert 16

17 Zusammengesetzte Partitionierung Composite oder Sub-Partitioning Range-Range Range-List Range-Hash List-List List-Range List-Hash Hash-Hash Hash-List Hash-Range 17

18 Erweiterte Partitionierungsmethoden Interval Partitioning Interval Interval-Range Interval-List Interval-Hash Reference Partitioning Virtual column based Partitioning 18

19 Maximale Anzahl Partitionen pro Segment bis 10gR1 64K-1 = Partitionen seit 10gR2 1024K-1 bis heute 12c = Partitionen sowie Sub-Partitionen Händelbarkeit bestimmt die Anzahl und Granularität Einzelne Partitionen sollten nicht über den 2-stelligen GB-Bereich hinauswachsen Bestimmt zugleich die Granularität des Partitionierungskriteriums z.b. Woche, Monat, Quartal oder Jahr 19

20 Partitionierungsspalten Sollten nach dem initialen Einfügen des Datensatzes unveränderlich oder mindestens selten veränderlich sein Seit 11g können auch virtuelle Spalten genutzt werden Teilstring einer Spalte, funktionale Ausdrücke aus mehreren Spalten Achtung Nachträgliches Ändern einer solchen Spalte kann eine andere Partition bedeuten - eine andere Partition bedeutet ein physisches Bewegen der Daten! 20

21 Partitionierung nach Wertebereichen Besonders geeignet für zeitbezogene Daten Partition pro Woche, Monat oder Quartal für Auftragsdatum-Spalte Häufigste Variante in der Praxis Spezialfall Interval-Partitionierung Seit 11g Neue Partitionen bei Bedarf automatisch erstellt 21

22 Partitionierung nach Werteliste Geeignet bspw. für Daten zugeordnet nach Gebieten bspw. Regionen-, Bundesland-Spalte Nicht geeignet für - nach dem initialen Einfügen - häufig ändernde Spalten Bsp. Statusspalten 22

23 Partitionierung nach Hash-Werten Es kommt auf den konkreten Wert der Partitionierungsspalte nicht an Es sollen irgendwelche Partitionen geschaffen werden Häufig für Subpartitionen eingesetzt Range-Hash, List-Hash Beispiel Equi Partitioning Zwei Tabellen werden nach ihrer Join-Spalte Hash-partitioniert Optimizer profitiert von partitionsweisen Joins Partition Pruning lässt sich hier nicht nutzen 23

24 Partitionierung nach einer übergeordneten Tabelle Es kann nach Spalten sortiert werden, die nur in einer per Fremdschlüssel übergeordneten Tabelle vorkommen Bspw. lässt sich eine Auftragstabelle nach dem Bundesland des Kunden partitionieren Logische Fortsetzung und Erweiterung von Equi-Partitioning Vorteil Erleichterung der Administration Unterstützung partitionsweiser Joins der betreffenden Tabelle 24

25 Welche Partitionierungsart? Wie wird typischerweise auf die Daten zugegriffen? Partitionierungsspalte muss in der WHERE-Klausel vorkommen! Optimizer kann nur in diesem Falle Partition Pruning und partitionsweise Joins einsetzen Anstelle der gesamten Tabelle werden nur diejenigen Partitionen, im besten Falle nur eine einzige Partition gelesen oder gejoint 25

26 Grundsätzliches Ob kann nur beim Erstellen einer Tabelle entschieden werden Einführen einer Partitionierung für eine nicht-partitionierte Tabelle bedeutet den kompletten Neuaufbau (Ausnahme: Partition Exchange) Ändern der Partitionierungsart bedeutet den kompletten Neuaufbau Nachträgliches Hinzufügen, Entfernen, Splitten oder Verschmelzen einer Partition einer bereits partitionierten Tabelle problemlos möglich Schwer revidierbare Entscheidungen, daher vorher genau analysieren! 26

27

28 Partitionierungsspalte Große Datenmengen enthalten oftmals ein Datumsfeld Data Warehouse oftmals Detaildaten (Faktentabellen) mit Datum Geeignet sofern überwiegend unveränderlich Partitionierung der Tabellen und zugehörige Indizes nach Datum 28

29 Beispiel: Auftragstabelle SQL> CREATE TABLE order_part ( orderid NUMBER(10) PRIMARY KEY, clientid NUMBER(10) REFERENCES clients (clientid), orderdate DATE, deliverydate DATE, orderstatus CHAR(1) REFERENCES status (statusid) ) PARTITION BY RANGE (orderdate) ( PARTITION q1_15 VALUES LESS THAN (to_date(' ','ddmmyyyy')) TABLESPACE ts01, PARTITION q2_15 VALUES LESS THAN (to_date(' ','ddmmyyyy')) TABLESPACE ts02, PARTITION q3_15 VALUES LESS THAN (to_date(' ','ddmmyyyy')) TABLESPACE ts03, PARTITION q4_15 VALUES LESS THAN (to_date(' ','ddmmyyyy')) TABLESPACE ts04, PARTITION q1_16 VALUES LESS THAN (MAXVALUE) TABLESPACE ts01 ); 29

30 Beispiel: Auftragstabelle Partitionierungskriterien werden durch fest definierte Wertebereiche einer oder mehrerer Spalten vergeben PARTITION BY RANGE (orderdate) Jede Partition erhält per VALUES-Klausel eine entsprechende Obergrenze PARTITION q1_15 VALUES LESS THAN (to_date(' ','ddmmyyyy')) TABLESPACE ts01, Nachvollziehbar welche Daten in welcher Partition Optimizer kann somit bestimmte Partitionen ausklammern und Zugriff auf einzelne Partitionen beschränken 30

31 Beispiel: Auftragstabelle Zugehöriger Equi-partitionierter Index SQL> CREATE INDEX order_part_orderdate ON order_part (orderdate) LOCAL ( PARTITION q1_15 TABLESPACE idxts01, PARTITION q2_15 TABLESPACE idxts02, PARTITION q3_15 TABLESPACE idxts03, PARTITION q4_15 TABLESPACE idxts04, PARTITION q1_16 TABLESPACE idxts01 ); 31

32 Beispiel: Auftragstabelle Vorteil bei der Abfragebearbeitung - es wird ausschließlich auf Partition 3 und 4 zugegriffen = Partition Pruning Wichtig: annäherungsweise Gleichverteilung der Daten SQL> SELECT orderid, orderstatus FROM order_part WHERE orderdate BETWEEN TO_DATE(' ','DD.MM.YYYY') AND TO_DATE(' ','DD.MM.YYYY'); Id Operation Name Pstart Pstop SELECT STATEMENT 1 PARTITION RANGE ITERATOR TABLE ACCESS BY LOCAL INDEX ROWID ORDER_PART 3 4 * 3 INDEX RANGE SCAN ORDER_ORDERDATE

33 DROP PARTITION bzw. EXCHANGE Vorteil: alte Daten können per DDL-Operation gelöscht oder archiviert werden Rolling-Window Zeitfenster für die Betrachtung verschiebt sich 1. Quartal 2015 wird ausgelagert (bspw. auf Read-only-Medium) und ein neues für Q wird angelegt 33

34 SPLIT PARTITION Vorsicht: SPLIT bewirkt, dass alle Daten einer Partition physisch bewegt werden Beispiel: zunächst wird Q angelegt und erst am Ende des Quartals wird Q per Split erzeugt Q1 und Q2 werden komplett neu eingepflegt Undo- und Redolog- Informationen werden erzeugt Besser: immer eine Dummy -Partition benutzen dann auf der leeren Partition die Spaltung durchführen 34

35 Ist sichergestellt, dass keine Daten in die MAXVALUE Partition läuft kann auf diese verzichtet werden PARTITION q1_16 VALUES LESS THAN (MAXVALUE) TABLESPACE ts01); ADD PARTITION zum anlegen einer neuen Partition SQL> ALTER TABLE order_part ADD PARTITION q2_16 VALUES LESS THAN (TO_DATE(' ','DDMMYYYY')) TABLESPACE ts02; Befehl kann nur genutzt werden, wenn kein MAXVALUE existiert fügt Partition an oberer Partitionsgrenze ein 36

36

37 Rolling-Window Erstellung neuer Range-Partitionen kann seit 11g automatisiert werden Sowohl für neue als auch existierende Range-partitionierte Tabellen möglich Voraussetzung: Partitioniert nach einer einzigen Spalte vom Typ DATE oder NUMBER Keine MAXVALUE Partition als Obergrenze 38

38 Start-Partition Partition mit der höchsten vorhandenen Partitionsgrenze Ausgangspunkt für automatisch erzeugte Partitionen INTERVAL-Klausel INTERVAL (NUMTOYMINTERVAL(3,'MONTH')) Bestimmt die Partitionsbreite STORE IN-Klausel STORE IN (ts01,ts02) Optional in welchen Tablespaces sollen Partitionen erstellt werden Tablespace muss spätestens beim Einfügen der Daten existieren 39

39 SQL> CREATE TABLE order_part ( orderid NUMBER(10) PRIMARY KEY, clientid NUMBER(10) REFERENCES clients (clientid), orderdate DATE, deliverydate DATE, orderstatus CHAR(1) REFERENCES status (statusid) ) PARTITION BY RANGE (orderdate) INTERVAL (NUMTOYMINTERVAL(3,'MONTH')) STORE IN (ts01,ts02) ( PARTITION q1_15 VALUES LESS THAN (TO_DATE(' ','DDMMYYYY')) TABLESPACE ts01, PARTITION q2_15 VALUES LESS THAN (TO_DATE(' ','DDMMYYYY')) TABLESPACE ts02 ); 40

40 Erstellung bei existierender Auftragstabelle mit Range-Partitionierung SQL> ALTER TABLE order_part SET INTERVAL (NUMTOYMINTERVAL(3,'MONTH')); ALTER TABLE order_part SET STORE IN (ts01,ts02); Genauso lassen sich auch Partitionsbreiten und zu verwendende Tablespaces anpassen Achtung: Wirkt sich nur auf zukünftige Partitionen aus. 41

41 Beispiel: Einfügung neuer Daten SQL> SELECT partition_name AS pname, high_value, tablespcace_name AS tsname, interval FROM user_tab_partitions WHERE table_name = 'ORDER_PART'; Status quo: PNAME HIGH_VALUE TNAME INTERVAL Q1_15 TO_DATE(' :00:00' TS01 NO Q2_15 TO_DATE(' :00:00' TS02 NO 42

42 Beispiel: Einfügung neuer Daten SQL> INSERT INTO order_part (orderid, orderdate) VALUES (500001, TO_DATE (' ', 'DD.MM.YYYY')); 1. Änderung: PNAME HIGH_VALUE TNAME INTERVAL Q1_15 TO_DATE(' :00:00' TS01 NO Q2_15 TO_DATE(' :00:00' TS02 NO SYS_P501 TO_DATE(' :00:00' TS01 YES Spalte INTERVAL gibt Auskunft über manuell und automatisch erzeugte Partition 43

43 Beispiel: Einfügung neuer Daten SQL> INSERT INTO order_part (orderid, orderdate) VALUES (500002, TO_DATE (' ', 'DD.MM.YYYY')); 2. Änderung: PNAME HIGH_VALUE TNAME INTERVAL Q1_15 TO_DATE(' :00:00' TS01 NO Q2_15 TO_DATE(' :00:00' TS02 NO SYS_P501 TO_DATE(' :00:00' TS01 YES SYS_P502 TO_DATE(' :00:00' TS01 YES Neue Partition wird mit systemgenerierten Namen angelegt Keine Vorgabe aber nachträgliches Ändern möglich 44

44 Beispiel: Einfügung neuer Daten SQL> INSERT INTO order_part (orderid, orderdate) VALUES (500003, TO_DATE (' ', 'DD.MM.YYYY')); ROLLBACK; 3. Änderung: PNAME HIGH_VALUE TNAME INTERVAL Q1_15 TO_DATE(' :00:00' TS01 NO Q2_15 TO_DATE(' :00:00' TS02 NO SYS_P501 TO_DATE(' :00:00' TS01 YES SYS_P503 TO_DATE(' :00:00' TS02 YES SYS_P502 TO_DATE(' :00:00' TS01 YES Bei einem Rollback bleibt eine automatisch erzeugte Partition bestehen 45

45 Beispiel: Einfügung neuer Daten bei einem Datensatz jenseits der nächsten anzulegenden Partition, werden nicht alle dazwischen liegenden Partitionen angelegt, sondern nur die eine Partition 2. Änderung: PNAME HIGH_VALUE TNAME INTERVAL Q1_15 TO_DATE(' :00:00' TS01 NO Q2_15 TO_DATE(' :00:00' TS02 NO SYS_P501 TO_DATE(' :00:00' TS01 YES SYS_P502 TO_DATE(' :00:00' TS01 YES Bei Bedarf wird diese automatisch, ohne physisches Bewegen der Zeilen und ohne Invalidierung globaler Indizes, gesplittet 3. Änderung: PNAME HIGH_VALUE TNAME INTERVAL Q1_15 TO_DATE(' :00:00' TS01 NO Q2_15 TO_DATE(' :00:00' TS02 NO SYS_P501 TO_DATE(' :00:00' TS01 YES SYS_P503 TO_DATE(' :00:00' TS02 YES SYS_P502 TO_DATE(' :00:00' TS01 YES 46

46 Automatisiert lediglich das Erstellen >neuer< Partitionen Alte Partitionen können nicht automatisiert gelöscht werden Verwaltung >alter< Partitionen obliegen weiterhin dem Administrator Manuelles Erstellen von Partitionen nicht mehr möglich Deaktivieren der automatischen Partitionserstellung möglich SQL> ALTER TABLE order_part SET INTERVAL(); 47

47

48 Informationen sind nach Gebieten oder sonstigen ungeordneten Wertelisten eingeteilt Relativ unveränderlich Kriterium wird in Abfragen häufig eingeschränkt Lässt sich gut mit virtuellen Spalten kombinieren 49

49 Beispiel: Produkttabelle SQL> CREATE TABLE products_part ( prodid NUMBER(10) PRIMARY KEY, pgrid NUMBER(10), productname VARCHAR(255), pricebuy NUMBER (10,2), pricesale NUMBER (10,2), pgrid_2 VARCHAR(2) AS (SUBSTR(TO_CHAR(pgrid),1,2)) ) PARTITION BY LIST (pgrid_2) ( PARTITION p01 VALUES ('10','11','12','13','14','15') TABLESPACE ts01, PARTITION p02 VALUES ('16','17','18','19') TABLESPACE ts02, PARTITION p03 VALUES ('20','21','22','23','24','25','26') TABLESPACE ts03, PARTITION p04 VALUES ('27','28','29') TABLESPACE ts04, PARTITION p05 VALUES ('30','31','32','33','34','35') TABLESPACE ts01, PARTITION p_rest VALUES (DEFAULT) TABLESPACE ts04 ); 50

50 Beispiel: Produkttabelle Es können keine Spaltenkombinationen verwendet werden, sondern nur eine einzige Spalte PARTITION BY LIST (pgrid_2) Letzte Partition bildet die Rest-Partition und nimmt alle nicht explizit aufgeführten Daten auf PARTITION p_rest VALUES (DEFAULT) TABLESPACE ts04, 51

51 Beispiel: Produkttabelle Jeder Wert der vorkommen kann, sollte also auch zugewiesen werden Ohne Zuweisung oder DEFAULT-Partition Fehler: ORA-14400: inserted partition key does not map to any partition ORA-14400: Eingefügter Partitionsschlüssel kann keiner Partition zugeordnet werden Zusätzlichen Wert hinzufügen: SQL> ALTER TABLE products_part MODIFY PARTITION p05 ADD VALUES ('36'); 52

52 Partition Pruning Voraussetzung: Spalte oder Definitionsausdruck der virtuellen Spalte kommt in der Abfrage vor: SQL> SELECT * FROM products_part WHERE pgrid='201342'; Id Operation Name Pstart Pstop SELECT STATEMENT 1 PARTITION LIST ALL 1 6 * 2 TABLE ACCESS FULL PRODUCTS_PART Optimizer kann Partitionierung nicht berücksichtigen 53

53 Partition Pruning Voraussetzung: Spalte oder Definitionsausdruck der virtuellen Spalte kommt in der Abfrage vor: SQL> SELECT * FROM products_part WHERE SUBSTR(TO_CHAR(pgrid),1,2)='20'; Id Operation Name Pstart Pstop SELECT STATEMENT 1 PARTITION LIST SINGLE KEY KEY * 2 TABLE ACCESS FULL PRODUCTS_PART Optimizer berücksichtigt Filterbedingung Typische Abfrageform entscheidet über Partitionierung 54

54

55 Es lassen sich keine sinnvollen Wertelisten oder Wertebereich finden Empfehlung: es sollten immer zwei oder mehr Tabellen - auf ihren jeweiligen Join-Spalten gleich partitioniert werden Hash-Partitionierung vor allem auf Fremdschlüsselspalten und den jeweils übergeordneten Primärschlüssel- oder Unique-Spalten Nutzen: Partitionsweise Joins kein Partition Pruning Trotzdem erheblicher Vorteil für Optimizer bei großen Tabellen 56

56 Merkmale: Interne Hash-Funktion übernimmt die Zuordnung Anzahl der Partitionen kann bestimmt werden Anzahl der Partitionen sollte ein Vielfaches von 2 sein Nicht Absehbar welcher Spaltenwert in welcher Partition gespeichert wird Macht löschen oder archivieren von Hash-Partitionen wertlos Spalten mit möglichst hoher Selektivität - Optimalfall eindeutige Werte - gewährleisten eine homogene Verteilung 57

57 Beispiel: Kunden- und Auftragstabelle SQL> CREATE TABLE clients_part ( clientid NUMBER(10) PRIMARY KEY, title VARCHAR(5), firstname VARCHAR(50), lastname VARCHAR(50), birthday DATE, image BLOB ) PARTITION BY HASH (clientid) PARTITIONS 16 STORE IN (ts01,ts02,ts03,ts04); CREATE TABLE order_part ( orderid NUMBER(10) PRIMARY KEY, clientid NUMBER(10) REFERENCES clients_part (clientid), orderdate DATE, deliverydate DATE, orderstatus CHAR(1) REFERENCES status (statusid) ) PARTITION BY HASH (clientid) PARTITION 16 STORE IN (ts01,ts02,ts03,ts04); CREATE INDEX order_part_clientid ON order_part (clientid) LOCAL; 58

58 Beispiel: Kunden- und Auftragstabelle Beim Join eines einzelnen Kunden-Datensatzes an die zugehörigen Auftragsdaten muss nun nicht auf die komplette Tabelle zugegriffen werden, sondern nur auf die passende Auftragspartition bzw. den zugehörigen Index hier Partition 7: SQL> SELECT p.firstname, p.lastname, a.orderid, a.orderstatus FROM clients_part p, order_part a WHERE p.clientid = a.clientid AND p.clientid = ; Id Operation Name Pstart Pstop SELECT STATEMENT 1 NESTED LOOPS 2 TABLE ACCESS BY GLOBAL INDEX ROWID CLIENTS_PART 7 7 * 3 INDEX UNIQUE SCAN SYS_C PARTITION HASH SINGLE TABLE ACCESS BY GLOBAL INDEX ROWID ORDER_PART 7 7 * 6 INDEX RANGE SCAN ORDER_PART_PERSID

59

60 Equi-Partitionierung abhängiger Tabellen Seit 11g verfügbar Baut auf eine per Fremdschlüssel übergeordnete Tabelle auf, welche bereits partitioniert ist Keine NULL-Werte Alle betreffenden Fremdschlüsselspalten müssen mit NOT-NULL-Constraints versehen sein Andernfalls Fehler: ORA-14652: reference partitioning foreign key is not supported ORA-14652: Refernz-Partitionierungs-Fremdschlüssel wird nicht unterstützt Beispiel: Auftrags- und Positionstabelle Häufige Joins zwischen beiden Tabellen machen eine deckungsgleiche Partitionierung sinnvoll 62

61 Beispiel: Auftrags- und Positionstabelle Bei der Definition muss der Name des Fremdschlüssel-Constraints angegeben werden CREATE TABLE order_part ( orderid NUMBER(10) PRIMARY KEY, clientid NUMBER(10) REFERENCES clients (clientid), orderdate DATE, deliverydate DATE, orderstatus CHAR(1) REFERENCES status (statusid) ) PARTITION BY RANGE (orderdate) ( PARTITION q1_15 VALUES LESS THAN (TO_DATE(' ','DDMMYYYY')) TABLESPACE ts01, PARTITION q2_15 VALUES LESS THAN (TO_DATE(' ','DDMMYYYY')) TABLESPACE ts02, PARTITION q3_15 VALUES LESS THAN (TO_DATE(' ','DDMMYYYY')) TABLESPACE ts03, PARTITION q4_15 VALUES LESS THAN (TO_DATE(' ','DDMMYYYY')) TABLESPACE ts04, PARTITION q1_16 VALUES LESS THAN (MAXVALUE) TABLESPACE ts01 ); CREATE TABLE positions_part ( orderid NUMBER(10) NOT NULL, posid NUMBER(10) NOT NULL, prodid NUMBER(10) REFERENCES products (prodid), quantity NUMBER(10,2), unitprice NUMBER(7,2), CONSTRAINT fk_positions_part_order FOREIGN_KEY (orderid) REFERENCES order_part (orderid) ) PARTITION BY REFERENCE (fk_positions_part_order); 63

62 Beispiel: Auftrags- und Positionstabelle Auftrags- und Positionstabelle sind jetzt Equi-Partitioniert Jede Umpartitionierung (Hinzufügen, Löschen, Splitten oder Verschmelzen) der Auftragstabelle vererbt sich automatisch auf die Positionstabelle Administrator muss nicht mehr auf konsistente Partitionierung achten Partitionen der Positionstabelle werden standardmäßig in den selben Tablespace wie die zugehörigen Partitionen der Auftragstabelle abgelegt Eigenständiges Umpartitionieren der Positionstabelle jedoch nicht mehr möglich 64

63 kann sich beliebig breit und tief verzweigen Weitere Tabelle, die per Fremdschlüssel von der Positionstabelle abhängt Weitere Tabellen, die per Fremdschlüssel von der Auftragstabelle abhängen Umpartitionierungen der obersten Tabelle kaskadieren auf alle direkt oder indirekt abhängigen Tabellen durch Übergeordnete Intervall-Partitionierte Tabelle mit 12c Bis 11gR2 nicht möglich Minimiert den Verwaltungsaufwand auf ein Minimum INTERVAL-REFERENCE-Partitioning 65

64 Beispiel: Auftrags- und Positionstabelle Ausnutzung der Equi- bzw. Reference-Partitionierung beim Join SQL> SELECT * FROM order_part a, positions_part p WHERE a.orderid = p.orderid AND a.orderdate BETWEEN TO_DATE(' ','DD.MM.YYYY') AND TO_DATE(' ','DD.MM.YYYY'); Id Operation Name Pstart Pstop SELECT STATEMENT 1 PARTITION RANGE ITERATOR NESTED LOOPS * 3 TABLE ACCESS FULL ORDER_PART 3 4 * 4 TABLE ACCESS FULL POSITIONS_PART Optimizer beschränkt sich auf Partition 3 und 4 durch Reference übernommen für die Positions-Tabelle 66

65

66 Verknüpfung zweier Partitionierungsarten Sinnvoll bei sehr großen Tabellen In erster Instanz Range- oder List-Partition In zweiter Instanz Subpartitionen nach Range-, List- oder Hash-Methode Innerhalb jeder Partition Jede Subpartition ist speichertechnisch unabhängig Kann mit eigenen Speicherparametern ausgestattet sein Administrative Operationen Hinzufügen, Löschen, Splitten, Verschmelzen oder physisches Verschieben für jede Subpartition verfügbar Optimierungsmöglichkeiten Partition-Pruning und partitionsweise Joins für jede Subpartition verfügbar 68

67 Beispiel: Kunden- und Auftragstabelle Generell inkompatibel aber durch Subpartitionierung nach clientid lassen sich partitionsweise Joins nutzen CREATE TABLE order_part SQL> CREATE TABLE clients_part ( clientid NUMBER(10) PRIMARY KEY, title VARCHAR(5), firstname VARCHAR(50), lastname VARCHAR(50), birthday DATE, image BLOB ) PARTITION BY HASH (clientid) PARTITIONS 16 STORE IN (ts01,ts02,ts03,ts04); ( orderid NUMBER(10) PRIMARY KEY, clientid NUMBER(10) REFERENCES clients (clientid), orderdate DATE, deliverydate DATE, orderstatus CHAR(1) REFERENCES status (statusid) ) PARTITION BY RANGE (orderdate) SUBPARTITION BY HASH (clientid) SUBPARTITIONS 16 STORE IN (ts01,ts02,ts03,ts04) ( PARTITION q1_15 VALUES LESS THAN (TO_DATE(' ','DDMMYYYY')) TABLESPACE ts01, PARTITION q2_15 VALUES LESS THAN (TO_DATE(' ','DDMMYYYY')) TABLESPACE ts02, PARTITION q3_15 VALUES LESS THAN (TO_DATE(' ','DDMMYYYY')) TABLESPACE ts03, PARTITION q4_15 VALUES LESS THAN (TO_DATE(' ','DDMMYYYY')) TABLESPACE ts04, PARTITION q1_16 VALUES LESS THAN (MAXVALUE) TABLESPACE ts01 ); 69

68 Beispiel: Kunden- und Auftragstabelle Optimizer erkennt, dass er nur die passenden HASH-Partitionen der Client- Tabelle mit den 5 passenden Subpartition der Orders-Tabelle joinen muss SQL> SELECT p.firstname, p.lastname, a.orderid, a.orderstatus FROM clients_part p, order_part a WHERE p.clientid = a.clientid AND p.clientid = ; Id Operation Name Pstart Pstop SELECT STATEMENT 1 NESTED LOOPS 2 TABLE ACCESS BY GLOBAL INDEX ROWID CLIENTS_PART 7 7 * 3 INDEX UNIQUE SCAN SYS_C PARTITION RANGE ALL PARTITION HASH SINGLE ORDER_PART 7 7 * 6 TABLE ACCESS FULL ORDER_PART

69

70 Indizes partitionieren Partitionierte Indizes lassen sich für partitionierte und nicht-partitionierte Tabellen anlegen Partitionierte Tabellen lassen sich auch mit nicht-partitionierten Indizes versehen B*Tree als auch Bitmap-Indizes können verwendet werden Einschränkung: nicht partitionierte Tabellen und partitionierte Bitmap-Indizes nicht möglich Bitmap-Indizes müssen nach gleichen Kriterien partitioniert sein wie die zugeordnete partitionierte Tabelle 72

71 Typen Eigenschaftspaare Lokale und Globale Indizes Prefixed und Non-Prefixed Indizes Local prefixed Index Local non-prefixed Index Global prefixed Index Global non-prefixed Index nicht unterstützt 73

72 Lokale Indizes Index ist lokal, wenn er dieselben Partitionierungskriterien wie die zugrunde liegende Tabelle aufweist Equi-Partitionerung 1:1 Zuordnung zwischen Tabellen- und Indexpartition Partitionsänderungen der Tabelle werden 1:1 auf entsprechenden Index übertragen Lokaler Index wird bei allen Operationen auf partitionierten Tabellen automatisch mitgeführt Besonders geeignet für Rolling-Window Erstellung mit LOCAL 74

73 Globale Indizes Index ist global, wenn er eigene von der Tabelle unabhängige Partitionierungskriterien aufweist oder überhaupt nicht partitioniert ist Operationen auf der zugeordneten partitionierten Tabelle werden nicht direkt übertragen Zugriffe auf eine Tabellenpartition können mehrere Indexpartitionen umfassen und umgekehrt ausschließlich Range- oder Hash-Index-Partitionierung möglich List- oder Composite-Index-Partitionierung nicht möglich Erstellung mit GLOBAL 75

74 Prefixed Indizes Index ist prefixed, wenn die für die Partitionierung benutzten Spalten selbst auch indiziert sind und außerdem in der Liste der Indexspalten ganz vorne stehen Non-Prefixed Indizes Index ist non-prefixed, wenn die Spalte nicht ganz vorne in der Liste der Indexspalten steht oder gar nicht unter den Indexspalten wäre 76

75 Local Prefixed Indizes Einfache Handhabung durch Equi-Partitionierung Nach SPLIT, MOVE, DROP kein Neuaufbau des Index notwendig Optimizer profitiert von 1:1 Zuordnung Tabellen- und Indexpartition Können als Unique-Index definiert werden SQL> CREATE [UNIQUE] INDEX order_part_datum_status ON order_part (orderdate, orderstatus) LOCAL; 78

76 Local Non-Prefixed Indizes Können nur unter bestimmten Umständen als Unique-Index verwendet werden Schlüsselwerte können in mehreren Tabellenpartitionen vorkommen Weniger Möglichkeiten für den Optimizer SQL> CREATE [UNIQUE] INDEX order_part_status_datum ON order_part (orderstatus, orderdate) LOCAL; CREATE INDEX order_part_deliverydate ON order_part (deliverydate) LOCAL; 79

77 Global Prefixed Indizes Können als Unique-Index definiert werden Häufig für Archivdaten benötigt Indizierung nach anderem Kriterium als Datum, welches meist Partitionierungsspalte ist Ausschließlich Range- oder Hash-Partitionierung Neuaufbau bei Partitionsänderungen der Tabelle ALTER TABLE UPDATE GLOBAL INDEXES Wenig Möglichkeiten für den Optimizer SQL> CREATE [UNIQUE] INDEX pk_order_part ON order_part (orderid) GLOBAL; 80

78 - 12c - Fazit

79 Online-Move-Partition MOVE PARTITION ONLINE DML auf die Tabelle während dem MOVE erlaubt Interval-Reference-Partitioning Kombination endlich verfügbar Reference-Partitioning Vererbung der von TRUNCATE und EXCHANGE PARTITION Operationen kaskadierend auf Child-Tabellen SPLIT und MERGE Kommando Erweiterung mit einem einzigen Befehl mehrere (Sub-)Partitionen verarbeiten Indexerzeugung Mehr Flexibilität lokale und globale Indizes auf eine Untermenge von Partitionen der Tabelle erzeugen INDEXING ON / OFF pro Tabelle und / oder pro Partition 83

80 Multi-column list partitioning Auto-list partitioning Interval Subpartitioning Read only partitions Alter table modify online 84

81 Mächtiges Werkzeug zur Optimierung von Zugriffen und Verwaltung (sehr) großer Datenbanken Weiterführende Themen: ILM und Advanced Compression Hot and Cold Data Oracle Partitionierung kann jeder nutzen mit Enterprise Edition und Partitioning Option Durch Transparenz für jede Applikation direkt einsetzbar Einziger Nachteil: Zusätzliche Kosten durch Partitioning Option Flashback Data Archive und Unified Auditing verwenden automatisch Partitioning auch in der SE (allerdings keine Lizenz notwendig) 85

82 Zeit für Ihre Fragen. Kontakt Sebastian Winkler Fon: CarajanDB GmbH Mobil: Siemensstraße 25 Twitter: sjw Erftstadt Blog: 86

Partitionierung für mehr Performance

Partitionierung für mehr Performance Partitionierung für mehr Performance Sebastian Winkler CarajanDB GmbH Erftstadt Schlüsselworte Oracle Partitioning, Data Warehouse, VLDB, Archivierung, Zugriffsoptimierung, Range, List, Hash Einleitung

Mehr

Partitioning Technik und Anwendungsbeispiele

Partitioning Technik und Anwendungsbeispiele Partitioning Technik und Anwendungsbeispiele Klaus Reimers ORDIX AG Köln Schlüsselworte: Range Partitioning, Hash Partitioning, List partitioning, System Partitioning, Interval Partitioning, Virtual Column

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

Partitionierung Indizes und Statistiken

Partitionierung Indizes und Statistiken Partitionierung Indizes und Statistiken DOAG Konferenz + Ausstellung 18.11.2014 Nürnberg Klaus Reimers info@ordix.de www.ordix.de Agenda Einführung Arten der Partitionierung Fragestellungen Indizes Indextypen

Mehr

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten Oracle Database 12c Was Sie immer schon über Indexe wissen wollten Marco Mischke, 08.09.2015 DOAG Regionaltreffen B* Indexe - Aufbau 0-Level Index A-F G-Z 1-Level Index A-F G-Z 2-Level Index A-F G-M N-Z

Mehr

Oracle 9i Einführung Performance Tuning

Oracle 9i Einführung Performance Tuning Kurs Oracle 9i Einführung Performance Tuning Teil 3 Der Optimizer Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 1. auf Tabellen 2. 3. Optimizer 4. Optimizer RBO 5. Optimizer CBO 6.

Mehr

Indexstrategien im Data Warehouse

Indexstrategien im Data Warehouse Indexstrategien im Data Warehouse Reinhard Mense areto consulting gmbh Köln Schlüsselworte Business Intelligence, Data Warehouse, Bitmap Index, B*Tree Index, Partial Index, Star Schema, Snowflake Schema,

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

Oracle 9i Einführung Performance Tuning

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

Mehr

Partitionierung Indizes und Statistiken

Partitionierung Indizes und Statistiken Partitionierung Indizes und Statistiken Klaus Reimers ORDIX AG Paderborn Schlüsselworte Local index, global index, prefixed index, nonprefix index, hash partitioned index, unusable index, orphaned index,

Mehr

Relationales Datenbanksystem Oracle

Relationales Datenbanksystem Oracle Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information

Mehr

Partitionierungsstrategien für Data Vault

Partitionierungsstrategien für Data Vault ierungsstrategien für Data Vault Dani Schnider Trivadis AG Zürich/Glattbrugg, Schweiz Einleitung Während das Laden von Tabellen in Data Vault in der Regel nicht zeitkritisch ist, stellt uns das effiziente

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

Optimiertes Laden in die F-Fakten-Tabelle des SAP BW

Optimiertes Laden in die F-Fakten-Tabelle des SAP BW Optimiertes Laden in die F-Fakten-Tabelle des SAP BW Schlüsselworte SAP BW Index unusable. Einleitung Jörn Bartels Oracle München Mit Oracle Database 11g Release 2 kann das Laden der F-Fakten Tabelle in

Mehr

Partitioning in der Datenbank 12c: Was ist neu?

Partitioning in der Datenbank 12c: Was ist neu? Partitioning in der Datenbank 12c: Was ist neu? Jan Ott, Trivadis AG Die neuen Features sollen die tägliche Wartung der Datenbank vereinfachen, die Verfügbarkeit erhöhen und die Performance verbessern

Mehr

Übersicht der wichtigsten MySQL-Befehle

Übersicht der wichtigsten MySQL-Befehle Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit

Mehr

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle. Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu

Mehr

SQL. Datendefinition

SQL. Datendefinition SQL Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer oder logischer Natur sein. Das folgende Kapitel beschäftigt sich mit der

Mehr

Erzeugen von Constraints

Erzeugen von Constraints Erzeugen von Constraints Was sind Constraints? Durch Constraints werden Regeln auf einem bestimmtem Tabellen-Level erzwungen. Die folgenden Constraint-Typen sind in Oracle integriert: NOT NULL UNIQUE Key

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

Partitionieren Sie Ihr Data Warehouse!

Partitionieren Sie Ihr Data Warehouse! Partitionieren Sie Ihr Data Warehouse! Beat Flühmann Trivadis AG Zürich (Schweiz) Schlüsselworte: BI, DWH, Partitionierung, phys. Modellierung Einleitung Die Technik der Partitionierung ist schon seit

Mehr

Reference Partitioning in der Praxis

Reference Partitioning in der Praxis Reference Partitioning in der Praxis Dr. Frank Haney Consultant Jena Schlüsselworte: Oracle Database, Manageability, Partitionierung Partitionierung von Tabellen Die Partitionierung gehört zur physischen

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

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

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes

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

Datenbank und Tabelle mit SQL erstellen

Datenbank und Tabelle mit SQL erstellen Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id`

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

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

Kapitel 7: Referentielle Integrität

Kapitel 7: Referentielle Integrität Kapitel 7: Referentielle Integrität Im Allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen (IB) erfüllen. Integritätsbedingungen

Mehr

Flashback mal sieben. DOAG Konferenz , Nürnberg. Klaus Reimers

Flashback mal sieben. DOAG Konferenz , Nürnberg. Klaus Reimers Flashback mal sieben DOAG Konferenz 15.11.2011, Nürnberg Klaus Reimers info@ordix.dede www.ordix.de Agenda Flashback Query Flashback Query Versions Between Flashback Table Flashback Table Drop Flashback

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15 Vorwort 13 Kapitel 1 Einleitung 15 Kapitel 2 SQL-der Standard relationaler Datenbanken... 19 2.1 Die Geschichte 19 2.2 Die Bestandteile 20 2.3 Die Verarbeitung einer SQL-Anweisung 22 2.4 Die Struktur von

Mehr

Datenschutz: Zugriffsrechte in SQL

Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-1 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt Datenschutz: Zugriffsrechte in SQL 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten

Mehr

Es geht also um die sogenannte SQL- Data Definition Language.

Es geht also um die sogenannte SQL- Data Definition Language. In diesem Abschnitt werden wir uns die SQL Befehle ansehen, mit denen ein sogenanntes Datenbankschema angelegt, gepflegt und auch wieder gelöscht werden kann. Es geht also um die sogenannte SQL- Data Definition

Mehr

Globale Statistiken im Oracle Data Warehhouse

Globale Statistiken im Oracle Data Warehhouse Globale Statistiken im Oracle Data Warehhouse Dani Schnider Principal Consultant 29. Januar 2012 Aktuelle und vollständige Optimizer-Statistiken sind Voraussetzung für die Ermittlung von guten Execution

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

Übung PL/SQL Trigger Lösungen

Übung PL/SQL Trigger Lösungen Übung PL/SQL Trigger Lösungen 1) Gebe das aktuelle Datum aus. Wofür steht dual? Ändere das Datum für Deine aktuelle Session auf das Format Jahr (4 Stellen) Monat (2 Stellen) Tag (2 Stellen)[Leerzeichen]Stunde

Mehr

Neue Features Oracle Database 12.2 Wann denn endlich?

Neue Features Oracle Database 12.2 Wann denn endlich? Neue Features Oracle Database 12.2 Wann denn endlich? DOAG 2017 Datenbank Dierk Lenz Erfolgreich seit 1996 am Markt Firmensitz: Burscheid (bei Leverkusen) Beratung, Schulung und Betrieb/Fernwartung rund

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

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

Indexbasiertes SQL Tuning

Indexbasiertes SQL Tuning Indexbasiertes SQL Tuning Eine Einführung Sebastian Wittig Systementwickler merlin.zwo InfoDesign GmbH & Co. KG 76228 Karlsruhe Spitzenleistung heißt, sich auf seine Stärken zu konzentrieren. merlin.zwo

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

Automatisierte Datenmigration mit dynamischen SQL

Automatisierte Datenmigration mit dynamischen SQL Automatisierte Datenmigration mit dynamischen SQL Rolf Wesp Consultant Rolf.Wesp@trivadis.com Düsseldorf, 27. Oktober 2009 Baden Basel Bern Brugg Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br.

Mehr

Oracle Flashback. in der Praxis Dr. Frank Haney 1

Oracle Flashback. in der Praxis Dr. Frank Haney 1 Oracle Flashback in der Praxis 15.11.2006 Dr. Frank Haney 1 Benutzerfehler Benutzerfehler stellen eine große Herausforderung für den DBA dar. Solche sind z.b.: Versehentliches oder böswilliges Löschen

Mehr

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7 1 Data Definition Language (DDL)... 2 1.1 Tabellen erstellen... 2 1.1.1 Datentyp...... 2 1.1.2 Zusätze.... 2 1.2 Tabellen löschen... 2 1.3 Tabellen ändern (Spalten hinzufügen)... 2 1.4 Tabellen ändern

Mehr

Laden von Data Marts auch mal komplex DOAG BI, 9. Juni 2016 Dani Schnider, Trivadis AG

Laden von Data Marts auch mal komplex DOAG BI, 9. Juni 2016 Dani Schnider, Trivadis AG Laden von Data Marts auch mal komplex DOAG BI, 9. Juni 2016 Dani Schnider, Trivadis AG BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA

Mehr

SQL: statische Integrität

SQL: statische Integrität SQL: statische Integrität.1 SQL: statische Integrität Im allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen erfüllen. Integritätsbedingungen

Mehr

Übung 01 Tabellen erstellen

Übung 01 Tabellen erstellen UEB-01-1 Übung 01 Tabellen erstellen Die folgende Musterrechnung dokumentiert eine Miniwelt "Rechnung" in einer Firma. 1. Welche Objekte und Beziehungen lassen sich daraus ableiten? 2. Erstellen Sie ein

Mehr

Erzeugung und Veränderung von Tabellen

Erzeugung und Veränderung von Tabellen Datenbanken - Objekte Erzeugung und Veränderung von Tabellen Objekt Tabelle View Sequence Index Synonym Basiseinheit zum Speichern; besteht aus Zeilen und Spalten; Logische Repräsentation; kann Teilmengen

Mehr

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) Hochschule für Technik, Wirtschaft und Kultur Leipzig 06.06.2008 Datenbanken II,Speicherung und Verarbeitung großer Objekte

Mehr

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel Anwendungsentwicklung Datenbanken SQL Stefan Goebel SQL Structured Query Language strukturierte Abfragesprache von ANSI und ISO standardisiert deklarativ bedeutet was statt wie SQL beschreibt, welche Daten

Mehr

DOAG Regionaltreffen TABLE REORG. Klaus Reimers. Leiter Beratung & Entwicklung, ORDIX AG, Paderborn

DOAG Regionaltreffen TABLE REORG. Klaus Reimers. Leiter Beratung & Entwicklung, ORDIX AG, Paderborn DOAG Regionaltreffen TABLE REORG Klaus Reimers Leiter Beratung & Entwicklung, ORDIX AG, Paderborn kr@ordix.de Agenda Reorganisationsgründe - Extents - Blockfüllgrad - Migrated Rows Workarounds - Storage

Mehr

Im Folgenden möchten wir Ihnen einige Beispiele aufzeigen, wie ALTER TABLE gemäß SQL92 verwendet wird:

Im Folgenden möchten wir Ihnen einige Beispiele aufzeigen, wie ALTER TABLE gemäß SQL92 verwendet wird: ALTER TABLE BEFEHLE Im Folgenden möchten wir Ihnen einige Beispiele aufzeigen, wie ALTER TABLE gemäß SQL92 verwendet wird: Fügt die Spalte Adresse zur Tabelle Kunden hinzu: ALTER TABLE Kunden ADD COLUMN

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

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

Kurs. Teil 7 UNDO-Management. Universität Hannover. Agenda. Einführung. Nutzung RBS Oracle 9i Einführung Performance Tuning.

Kurs. Teil 7 UNDO-Management. Universität Hannover. Agenda. Einführung. Nutzung RBS Oracle 9i Einführung Performance Tuning. Kurs Oracle 9i Performance Tuning Teil 7 UNDO-Management Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 23 Seite 1 von 23 1. 2. Nutzung des Rollback Segments 3. 4. 5. Größe von UNDO- TBS berechnen 6.

Mehr

Nützliche Oracle 12c Features für Data Warehousing DOAG BI, 8. Juni 2016 Dani Schnider, Trivadis AG

Nützliche Oracle 12c Features für Data Warehousing DOAG BI, 8. Juni 2016 Dani Schnider, Trivadis AG Nützliche Oracle 12c Features für Data Warehousing DOAG BI, 8. Juni 2016 Dani Schnider, Trivadis AG BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART

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

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

Oracle Streams Doag Vortrag Claus Cullmann

Oracle Streams Doag Vortrag Claus Cullmann Oracle Streams Doag Vortrag 27.10.11 Claus Cullmann Oracle Streams Doag Vortrag 27.10.11 Claus Cullmann Oracle Streams Doag Vortrag 27.10.11 Claus Cullmann Anwendungen Datenströme Überblick Oracle Streams

Mehr

Fehlertoleranz und Robustheit von ETL-Prozessen Wie gestalten wir Abläufe möglichst widerstandsfähig. Christian Borghardt I BI Consultant

Fehlertoleranz und Robustheit von ETL-Prozessen Wie gestalten wir Abläufe möglichst widerstandsfähig. Christian Borghardt I BI Consultant Fehlertoleranz und Robustheit von ETL-Prozessen Wie gestalten wir Abläufe möglichst widerstandsfähig Christian Borghardt I BI Consultant Über uns areto consulting gmbh Echter Business Intelligence Spezialist

Mehr

Datenbanken. Zusammenfassung. Datenbanksysteme

Datenbanken. Zusammenfassung. Datenbanksysteme Zusammenfassung Datenbanksysteme Christian Moser Seite 1 vom 7 12.09.2002 Wichtige Begriffe Attribut Assoziation API Atomares Attribut Datenbasis DBMS Datenunabhängigkeit Datenbankmodell DDL DML DCL ER-Diagramm

Mehr

1.1 Datenbanken Tabellen SQL und die Befehlseingabe Beispieldatenbank 36

1.1 Datenbanken Tabellen SQL und die Befehlseingabe Beispieldatenbank 36 Vorwort 11 1 Einleitung 15 1.1 Datenbanken 21 1.2 Tabellen 29 1.3 SQL und die Befehlseingabe 29 1.4 Beispieldatenbank 36 2 Am Anfang 38 2.1 Aufrufen der SQL-Eingabemaske 38 2.2 Schließen der SQL-Eingabemaske

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

Aufbau einer Oracle Datenbank

Aufbau einer Oracle Datenbank Aufbau einer Oracle Datenbank Eike Florian Petersen 29. Juni 2015 Inhaltsverzeichnis 1. Tablespaces 1.1 Konzept, Arten 1.2 Operationen 2. Arten von Dateien 2.1 Datendateien 2.2 Redolog-Dateien 2.3 Control-Dateien

Mehr

RavenDB, schnell und skalierbar

RavenDB, schnell und skalierbar RavenDB, schnell und skalierbar Big Data & NoSQL, Aydin Mir Mohammadi bluehands GmbH & Co.mmunication KG am@bluehands.de Immer mehr Mehr Performance Mehr Menge Mehr Verfügbarkeit Skalierung http://www.flickr.com/photos/39901968@n04/4864698533/

Mehr

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

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

Datenbanken: Datenintegrität. www.informatikzentrale.de

Datenbanken: Datenintegrität. www.informatikzentrale.de Datenbanken: Datenintegrität Definition "Datenkonsistenz" "in der Datenbankorganisation (...) die Korrektheit der gespeicherten Daten im Sinn einer widerspruchsfreien und vollständigen Abbildung der relevanten

Mehr

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel 4.14.3 Bedingungen über Werte 4.14.4 Statische Integrität Zu jeder Tabelle werden typischerweise ein Primärschlüssel und möglicherweise weitere Schlüssel festgelegt (UNIQUE-Klausel). In jeder Instanz zu

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

Referenzielle Integrität SQL

Referenzielle Integrität SQL Referenzielle Integrität in SQL aus Referential Integrity Is Important For Databases von Michael Blaha (Modelsoft Consulting Corp) VII-45 Referenzielle Integrität Definition: Referenzielle Integrität bedeutet

Mehr

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:

Mehr

Beispiel zur referentiellen Integrität

Beispiel zur referentiellen Integrität 3. Der SQL-Standard 3.14. Integrität und Trigger Seite 1 Beispiel zur referentiellen Integrität CREATE TABLE T1( k1 NUMERIC NOT NULL PRIMARY KEY); CREATE TABLE T2( k2 NUMERIC NOT NULL PRIMARY KEY, k1 NUMERIC,

Mehr

Die Anweisung create table

Die Anweisung create table SQL-Datendefinition Die Anweisung create table create table basisrelationenname ( spaltenname 1 wertebereich 1 [not null],... spaltenname k wertebereich k [not null]) Wirkung dieses Kommandos ist sowohl

Mehr

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

Testklausur 1 Übungsaufgaben aus alten Datenbanken 1 Klausuren zum Data Science-Synchronisationsmodul Datenbanken WS 2016/17

Testklausur 1 Übungsaufgaben aus alten Datenbanken 1 Klausuren zum Data Science-Synchronisationsmodul Datenbanken WS 2016/17 Testklausur 1 Übungsaufgaben aus alten Datenbanken 1 Klausuren Aufgabe 1 10 = 5 + 5 Punkte) DDL Relationenmodell eer-diagramm /10) Gegeben sei das folgende SQL-DDL-Skript zur Generierung eines Oracle-Datenbankschemas:

Mehr

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle Einführung in SQL insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle Quelle Wikipedia, 3.9.2015 SQL zur Kommunikation mit dem DBMS SQL ist

Mehr

Oracle Datenbank 11g Advanced Compression Option

Oracle Datenbank 11g Advanced Compression Option Oracle Datenbank 11g Advanced Compression Option DOAG Regionalgruppe Jena/Thüringen am 30. April 2008 Karin Patenge Oracle Deutschland GmbH karin.patenge@oracle.com Agenda Oracle

Mehr

Oracle 12c: Migrationswege und Konzepte. Dierk Lenz

Oracle 12c: Migrationswege und Konzepte. Dierk Lenz Oracle 12c: Migrationswege und Konzepte Dierk Lenz Einfache Migrationsverfahren 2 Was ist eine Migration? Neue Hardware oder Neues Betriebssystem oder Neue Oracle-Version Patch Set Update / Security Patch

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

TOAD und Performance Tuning

TOAD und Performance Tuning TOAD und Performance Tuning DOAG Regionaltreffen München / Südbayern Johannes Ahrends Herrmann & Lenz Services GmbH Agenda TOAD als Unterstützung für den DBA Performance Tuning mit TOAD Fragen & Antworten

Mehr

Partitionieren über Rechnergrenzen hinweg

Partitionieren über Rechnergrenzen hinweg Partitionieren über Rechnergrenzen hinweg Erkan Yanar erkan.yanar@linsenraum.de Blog: linsenraum.de/erkules Xing: www.xing.com/profile/erkan Yanar 24. November 2011 Was tun wenn: Daten übersteigen die

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

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

Indizes B+Bäume in Oracle. Jörg Winkler

Indizes B+Bäume in Oracle. Jörg Winkler Indizes B+Bäume in Oracle Vortragende: Conrad Kobsch Jörg Winkler Inhalt Allgemeines Aufbau / Eigenschaften von B+Bäumen Vorteile / Nachteile B+Baum-Indexe Kriterien für Indizes Anlegen eines Indizes Anfrageoptimierung

Mehr

Partitionierung im Data Warehouse mit ORACLE 11g und 12c. Reinhard Wahl DOAG Konferenz Nürnberg, 18.-20. November 2014

Partitionierung im Data Warehouse mit ORACLE 11g und 12c. Reinhard Wahl DOAG Konferenz Nürnberg, 18.-20. November 2014 Partitionierung im Data Warehouse mit ORACLE 11g und 12c Reinhard Wahl DOAG Konferenz Nürnberg, 18.-20. November 2014 Wir fokussieren mit unseren Services die Herausforderungen des Marktes und verbinden

Mehr

1 Hartmann Anna Cäcilienstr Köln (0221) Behrens-Hoffmeister Heidi Lindenweg Köln (0221)

1 Hartmann Anna Cäcilienstr Köln (0221) Behrens-Hoffmeister Heidi Lindenweg Köln (0221) Erstellen einer Mitarbeiter-Datenbank 1 Erstellen einer Mitarbeiter-Datenbank Arbeitsauftrag Ziel der Übung Erstellen von Datenbanken mit Hilfe von SQL-Abfragen Aufgabe (1.) Erstellen Sie eine neue Datenbank

Mehr

Datenbankstatistiken im Griff mit DBMS_STATS. DOAG 2012 Konferenz + Ausstellung Nürnberg 21. November 2012

Datenbankstatistiken im Griff mit DBMS_STATS. DOAG 2012 Konferenz + Ausstellung Nürnberg 21. November 2012 Datenbankstatistiken im Griff mit DBMS_STATS DOAG 2012 Konferenz + Ausstellung Nürnberg 21. November 2012 Herrmann & Lenz Services GmbH Herrmann & Lenz Solutions GmbH Erfolgreich seit 1996 am Markt Firmensitz:

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

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

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs Datenbanken SQL Insert, Update, Delete, Drop Krebs Inhalt 1. Datensätze einfügen: INSERT 2. Datensätze verändern: UPDATE 3. Datensätze löschen: DROP vs. DELETE Beispiel Datenbank Schule Klasse P_Klasse

Mehr

Die View von der View von der View PERFORMANTES SQL SCHREIBEN

Die View von der View von der View PERFORMANTES SQL SCHREIBEN Die View von der View von der View PERFORMANTES SQL SCHREIBEN Schlüsselworte SQL, Performance, Optimizer Uwe Embshoff Airpas Aviation AG Braunschweig Einleitung Es gibt viel Literatur zum Thema Oracle

Mehr

Johannes Ahrends CarajanDB GmbH CarajanDB GmbH

Johannes Ahrends CarajanDB GmbH CarajanDB GmbH Johannes Ahrends CarajanDB GmbH Experten mit über 20 Jahren Oracle Erfahrung Firmensitz in Erftstadt bei Köln Spezialisten für Oracle Datenbank Administration Hochverfügbarkeit (RAC, Data Guard, Failsafe,

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1) Vorlesung #3 SQL (Teil 1) Fahrplan Wiederholung/Zusammenfassung Relationales Modell Relationale Algebra Relationenkalkül Geschichte der Sprache SQL SQL DDL (CREATE TABLE...) SQL DML (INSERT, UPDATE, DELETE)

Mehr

... Datenintegrität verwalten

... Datenintegrität verwalten 13... Datenintegrität verwalten Lektion 13: Datenintegrität verwalten Ziele Ziele Nach dieser Lektion sollten Sie Folgendes können: Datenintegritäts-Constraints implementieren Datenintegritäts-Constraints

Mehr