Ausarbeitung Datenbanken II
|
|
- Mona Glöckner
- vor 7 Jahren
- Abrufe
Transkript
1 Christian Gasch 05IN Ausarbeitung Datenbanken II Thema: Physische Datenbankdefinition in Oracle
2 Inhaltsverzeichnis: 1. Cluster 2. Index-organisierte Tabellen 3. Partitionierung 3.1 Range-Partitionierung 3.2 Hash-Partitionierung 3.3 Composite-Partitionierung 3.4 List-Partitionierung 3.5 Partitionierte Indizes 3.6 Existierende Tabellen partitionieren 4. Die Storage-Klausel 5. Unterstützte Indexstrukturen 5.1 B*Indizes 5.2 Bitmap-Indizes 5.3 Bitmap-Join-Indizes 5.4 Reverse-Key-Indizes 5.5 Funktionale Indizes
3 1. Cluster: Cluster sind Gruppen von einer, oder mehrerer Tabellen, die physisch zusammen gespeichert werden, weil sie gemeinsame Spalten teilen und oft zusammen benutzt werden. Das verbessert die Platten-Zugriffszeiten. Die verbundenen Spalten der Tabellen in einem Cluster werden Cluster-Schlüssel genannt. Der Cluster-Schlüssel ist indiziert, so, dass die Zeilen des Clusters mit einem minimalen I/O-Aufwand abgefragt werden können. Es spielt keine Rolle, wie viele Tabellen im Cluster den Cluster-Schlüsselwert enthalten. Er wird immer nur einmalig pro Cluster und Cluster-Index gespeichert. Deshalb wird weniger Speicherplatz benötigt. Ungeclusterte Tabellenzeilen: Geclusterte Tabellenzeilen: Die Grafiken sind eine Abwandlung der Beispielgrafiken von
4 Es gibt zwei verschiedene Arten von Clustern: Hash-Cluster Index-Cluster In Hash-Clustern werden die Daten in einem einzelnen Block basierend auf Hash-Key und Hash- Funktion zusammen gespeichert. In Index-Clustern wiederum werden die Daten in einem Block basierend auf einem gemeinsamen Spalten-Index gespeichert. SQL-Beispiel für das Erstellen eines Hash-Clusters: CREATE CLUSTER scott.off_clu (country VARCHAR2(2),postcode VARCHAR2(8)) SIZE 500 HASHKEYS 1000 TABLESPACE DATA01 STORAGE(INITIAL 5M NEXT 5M PCTINCREASE 0); HASHKEYS 1000 = wie viele Hash-Gruppen sollen erstellt werden CREATE TABLE scott.office ( office_cd NUMBER(3), cost_ctr NUMBER(3), country VARCHAR2(2), postcode VARCHAR2(8) ) CLUSTER scott.off_clu(country,postcode); SQL-Beispiel für das Erstellen eines Index-Clusters: CREATE CLUSTER scott.ord_clu (ord_no NUMBER(3)) INDEX SIZE 200 TABLESPACE DATA01 STORAGE(INITIAL 5M NEXT 5M PCTINCREASE 0); CREATE INDEX scott.ord_clu_idx ON CLUSTER scott.ord_clu TABLESPACE INDX01 STORAGE(INITIAL 1M NEXT 1M PCTINCREASE 0); CREATE TABLE scott.ord (ord_no NUMBER(3) CONSTRAINT ord_pk PRIMARY KEY, ord_dt DATE, cust_cd VARCHAR2(3)) CLUSTER scott.ord_clu(ord_no); CREATE TABLE scott.item (ord_no NUMBER(3) CONSTRAINT item_ord_fk REFERENCES scott.ord, prod VARCHAR2(5), qty NUMBER(3), CONSTRAINT item_pk PRIMARY KEY(ord_no,prod)) CLUSTER scott.ord_clu(ord_no);
5 2. Index-organisierte Tabellen: Index-organisierte Tabellen haben ihre eigene Struktur- und Indexmodelle die sich von denen konventioneller Tabellen unterscheiden. In einer konventionellen Tabelle ist die physische Adresse, oder ROWID stabil und ändert sich nicht, solange die ROW existiert Index-organisierte Tabellen sind nicht an einen physischen Ort gebunden. Sie speichern ihre Daten sortiert nach dem Primärschlüssel in Form eines B*-Indexbaumes. Im Gegensatz zu normalen B*- Indexbäumen enthalten die B*-Bäume von Index-organisieren Tabellen jedoch auch Spalten, die nicht zu dem Tabellenschlüssel gehören. Ausserdem ist es bei Index-organisierten Tabellen möglich, bestimmte Spalten, in einem separaten Segment zu speichern. Mit Hilfe dieser Überlaufbereiche können die Datensätze in dem Blättern des Baumes kurz gehalten und dadurch der Baum kompakter aufgebaut werden. Darüber hinaus kann man zusätzliche Sekundärindizes für Index-organisierten Tabellen definieren. Damit werden Zugriffe, die nicht über die Primärschlüsselspalten erfolgen, optimiert. Diese Sekundärindizes enthalten logische Satzadressen für den Zugriff auf den Index- Baum. In einer Index-organisierten Tabelle können sich die Row hin und her bewegen, um die sortierte Reihenfolge zu erhalten. An einen anderen Platz, oder sogar in einen anderen Block. Da Einträge in Index-Bäumen durch INSERT- und UPDATE-Operationen und damit verbundenen Splitoperationen auf den Index-Blättern möglicherweise verschoben werden, können Zugriffe über logische Satzadressen fehlschlagen. In diesen Fällen wird eine zusätzliche Scan-Operation über den Primärschlüssel notwendig, um den betreffenden Datensatz zu lesen. Wie normale Indizes, so lassen sich auch Index-organisierte Tabellen zusätzlich komprimieren. Bei der Komprimierung werden die Spalten des Primärschlüssels in Präfix- und Sufixbereiche aufgeteilt und die wiederholt auftretenden Werte der Präfixe innerhalb eines Blockes unterdrückt. Index-organisierte Tabellen sind sehr gut geeignet für die Umsetzung aller Entitäten, die einen großen Teil ihres Imformationsgehaltes aus den Schlüsselspalten beziehen. Dabei gibt es eine große Ersparnis an Speicherplatz, da keine seperaten Segemente für Tabellen und Indizes angelegt werden müssen. Beispiel für die Implementierung einer Tabelle, bei der die Spalten Rabatt und kommentar und rabattliste, sofern der Schwellwert von 10% pro Block und Datensatz überschritten wird, in einen Überlaufbereich im Tablespace ts_over ausgelagert werden. CREATE TABLE artikelpreis (artnr VARCHAR(20), von_datum DATE, bis_datum DATE, preis_euro number(6,2), kommentar VARCHAR2(2000), rabattliste mumber(4), CONSTRAINT pk_artikelpreis PRIMARY KEY(artnr, von_datum, bis_datum) ) ORGANIZATION INDEX TABLESPACE ts_data PCTTHRESHOLD 10 INCLUDE preis_euro OVERFLOW TABLESPACE ts_over;
6 Im folgenden Beispiel wird die Tabelle aus dem letzen Beispiel mit einer Komprimierung auf der ersten Schlüsselspalte angelegt. Dementsprechend werden redundante Artikelnummern innerhalb eines Index-Blattes unterdrückt. CREATE TABLE artikelpreis (artnr VARCHAR(20), von_datum DATE, bis_datum DATE, preis_euro number(6,2), kommentar VARCHAR2(2000), rabattliste mumber(4), CONSTRAINT pk_artikelpreis PRIMARY KEY(artnr, von_datum, bis_datum) ) ORGANIZATION INDEX COMPRESS 1 TABLESPACE ts_data PCTTHRESHOLD 10 INCLUDE preis_euro OVERFLOW TABLESPACE ts_over; * Die beiden Beispiele sind dem Buch Oracle9i für den DBA von Uwe Herrmann entnommen. 3. Partitionierung 3.1 Range-Partitionierung Bei der Range-Partitionierung werden die Daten durch einen bestimmten Wertebereich in einer, oder mehreren Spalten partitioniert. Dabei werden die entsprechenden Grenzwerte über Value- Klauseln vorgegeben. Dadurch ist immer ersichtlich, in welcher Partitionierung welche Daten gespeichert sind. Des Weiteren kann diese Partitionierung benutzt werden, wenn zum Beispiel nach Monaten, oder Jahren partitioniert wird und ein bestimmter Monat gelöscht werden soll, kann einfach die Partition gelöscht werden. Das selbe gilt für andere Zugriffe, die speziell eine bestimmte Partition betreffen. SQL-Beispiel für das Anlegen einer Range-Partitionierung: CREATE TABLE person (pid NUMBER NOT NULL, birth_date DATE NOT NULL, name VARCHAR2(100)) PARTITION BY RANGE (birth_date) (PARTITION person_q1 VALUES LESS THAN (TO_DATE('01/01/1986', 'DD/MM/YYYY')) TABLESPACE people, PARTITION person_q2 VALUES LESS THAN (TO_DATE('01/01/1987', 'DD/MM/YYYY')) TABLESPACE people, PARTITION person_q3 VALUES LESS THAN (TO_DATE('01/01/1988', 'DD/MM/YYYY')) TABLESPACE people, PARTITION person_q4 VALUES LESS THAN (TO_DATE('01/01/1989', 'DD/MM/YYYY')) TABLESPACE people); Hierbei wird die Tabelle person nach dem Geburtsdatum partitioniert werden. In vier Partitionen.
7 3.2 Hash-Partitionierung Bei einer Hash-Partitionierung übernimmt eine interne Hash-Funktion die Zuordnung einer Tabellenzeile zu einer Partition anhand einer, oder mehrerer Spalten. Auf Grund der internen Hash- Funktion kann nicht vorher gesagt werden, in welche Partition eine Zeile gespeichert wird. Dadurch ist es bei einer Hash-Partitionierung nur möglich eine gewünschte Anzahl an Partitionierungen anzugeben. Bei einer Partitionierung über einem natürlichen Wert, wie Monate, oder Jahre bringt die Hash- Partitionierung keine Vorteile. Die Vorteile der Hash-Partitionierung liegen in der Anwendung auf Daten ohne natürliches Partitionierungskriterium, oder bei denen die Daten ungleich verteilt sind. SQL-Beispiel für das Anlegen einer Hash-Partitionierung: CREATE TABLE person (pid NUMBER NOT NULL, bierth_date DATE NOT NULL, name VARCHAR2(100)) PARTITION BY HASH (pid) PARTITIONS 4 STORE IN (people, people, people, people); Hierbei wird über die STORE IN-Klausel der Tablespace definiert werden in dem die Partitionen gespeichert werden. Alternativ dazu kann der Tablespace direkt angegeben werden: CREATE TABLE person (pid NUMBER NOT NULL, birth_date DATE NOT NULL, name VARCHAR2(100)) PARTITION BY HASH (pid) (PARTITION person_q1 TABLESPACE people, PARTITION person_q2 TABLESPACE people, PARTITION person_q3 TABLESPACE people, PARTITION person_q4 TABLESPACE people); 3.3 Composite-Partitionierung Bei der Composite-Partitionierung handelt es sich um eine Kombination aus Range- und Hash- Partitionierung. Dabei wird zuerst eine Range-Partitionierung durchgeführt und dann die einzelnen Partitionierungen mit einer Hash-Partitionierung partitioniert. SQL-Beispiel für fas Anlegen einer Composite-Partinionierung: CREATE TABLE person (pid NUMBER NOT NULL, birth_date DATE NOT NULL, name VARCHAR2(100)) PARTITION BY RANGE (birth_date) SUBPARTITION BY HASH (pid) SUBPARTITIONS 8 (PARTITION person_q1 VALUES LESS THAN (TO_DATE('01/01/1986', 'DD/MM/YYYY')), PARTITION person_q2 VALUES LESS THAN (TO_DATE('01/01/1987', 'DD/MM/YYYY')), PARTITION person_q3 VALUES LESS THAN (TO_DATE('01/01/1988', 'DD/MM/YYYY')), PARTITION person_q4 VALUES LESS THAN (TO_DATE('01/01/1989', 'DD/MM/YYYY'));
8 3.4 List-Partitionierung Bei einer List-Partitionierung werden keine festen Wertebereiche fest gelegt. Sondern möglicherweise nicht fortlaufende, explizite Werte als Partitionierungskriterium festgelegt. Dies findet vor allem dort Anwendung, wo keine natürlichen Wertebereiche vorliegen, trotzdem aber eine Kontrolle darüber erwünscht ist, was in welcher Partitionierung gespeichert wurde, um zum Beispiel das Löschen zu erleichtern. Die Partitionierung geschieht hier, wie bei der Range-Partitionierung über eine Value-Klausel. Dabei ist es bei der List-Partitionierung jedoch nur möglich eine Spalte als Kriterium anzugeben. SQL-Beispiel für das Anlegen einer List-Partitionierung: CREATE TABLE state_sales( acct_no NUMBER(5), acct_name VARCHAR2(30), amount_of_sale NUMBER(6), state_cd VARCHAR2(2), sale_details VARCHAR2(1000), PRIMARY KEY (acct_no, acct_name, state_cd) ) ORGANIZATION INDEX INCLUDING state_cd OVERFLOW TABLESPACE users PARTITION BY LIST (state_cd) ( PARTITION reg_east VALUES ('MA','NY','CT','NH'), PARTITION reg_west VALUES ('CA', 'AZ', 'NM','OR'), PARTITION reg_south VALUES ('TX','KY','TN','GA'), PARTITION reg_central VALUES ('OH','ND','SD','IA'), PARTITION reg_null VALUES (NULL), PARTITION reg_unknown VALUES (DEFAULT) Dieses Beispiel ist der Oracle-Tutorialseite entnommen. 3.5 Partitionierte Indizes Ebenso wie Tabellen können auch Indizes partitioniert. Partitionierte Indizes können sowohl für partitionierte als auch für nicht partitionierte Tabellen angelegt werden. Ebenso kann man partitionierte Tabellen mit nicht partitionierten Indizes versehen werden. Indextypen: Lokale Indizes: Partitionierte Indizes sind dann lokal wenn ihnen die selben Partitionierungskriterien wie die Tabellen zu denen sie gehören zu Grunde liegen. Dadurch können Operationen auf den partitionierten Tabellen eins zu eins auf die Indizes übertragen werden. Globale Indizes: Bei globalen partitionierten Indizes haben ein von der partitionierten Tabelle unabhängiges Partitionierungskriterium. Dies Kriterien werden stets auf Basis der Range- Partitionierung definiert. Prefixed: Indizes sind prefixed, wenn die als Partitionierungskriterium verwendeten Spalten selber auch indiziert sind.
9 Nonprefixed: Indizes sind nonprefixed, wenn wenn die für die Partitionierung verantwortlichen Spalten selbst nicht indiziert werden. Es sind drei Kombinationen dieser Eigenschaftspaare möglich: Lokal Prefixed-Index: CREATE INDEX invoices_idx ON invoices (invoice_date) LOCAL; CREATE INDEX invoices_idx ON invoices (invoice_date) LOCAL (PARTITION invoices_q1 TABLESPACE users, PARTITION invoices_q2 TABLESPACE users, PARTITION invoices_q3 TABLESPACE users, PARTITION invoices_q4 TABLESPACE users); Lokal Nonprefixed-Index: CREATE INDEX invoices_idx ON invoices (invoice_date) LOCAL; CREATE INDEX invoices_idx ON invoices (invoice_date) LOCAL (PARTITION invoices_q1 TABLESPACE users, PARTITION invoices_q2 TABLESPACE users, PARTITION invoices_q3 TABLESPACE users, PARTITION invoices_q4 TABLESPACE users); Global Prefixed-Index: CREATE INDEX invoices_idx ON invoices (invoice_date) LOCAL; CREATE INDEX invoices_idx ON invoices (invoice_date) LOCAL (PARTITION invoices_q1 TABLESPACE users, PARTITION invoices_q2 TABLESPACE users, PARTITION invoices_q3 TABLESPACE users, PARTITION invoices_q4 TABLESPACE users); 3.6 Existierende Tabellen partitionieren Eine nachträgliche Partitionierung einer Tabelle ist nur auf einem Umweg möglich. Dabei wird die Partitionierung einer anderen Tabelle mit der zu partitionierenden Tabelle vertauscht. Dabei können ALTER TABLE und EXCAHNGE PARTITION verwendet werden, um schon bestehende Tabellen zu partitionieren. Als erstes wird eine Tabelle erstellt: CREATE TABLE my_table ( id NUMBER, description VARCHAR2(50) ); INSERT INTO my_table (id, description) VALUES (1, 'One'); INSERT INTO my_table (id, description) VALUES (2, 'Two'); INSERT INTO my_table (id, description) VALUES (3, 'Three'); INSERT INTO my_table (id, description) VALUES (4, 'Four'); COMMIT;
10 Als nächstes wird eine neue, partitionierte Tabelle mit einer Partition erstellt, die als Zieltabelle dienen wird. CREATE TABLE my_table_2 ( id NUMBER, description VARCHAR2(50) ) PARTITION BY RANGE (id) (PARTITION my_table_part VALUES LESS THAN (MAXVALUE)); Als nächstes wird das original Tabllensegment mit dem partitionierten vertausch. ALTER TABLE my_table_2 EXCHANGE PARTITION my_table_part WITH TABLE my_table WITHOUT VALIDATION; Jetzt muss bloß noch die alte Tabelle gelöscht und die neue in den Namen der alten umbenannt werden, und die Partitionierung ist vollständig. *Das Beispiel ist der Oracle Tutorialseite: entnommen. 4. Die STORAGE-Klausel Die Storage-Klausel spezifiziert wie ein Objekt den Platz benutzt, in dem es angelegt ist. Einige Objekte, einschließlich Pakete, Prozeduren, Typen, Sichten,Bibliotheken, Ordner und Index-Typen benutzen die Storage-Klausel nicht. Eine create tablespace-statement kann eine default -Storage-Klausel haben, die die Storage- Vorgabe für im Tablespace angelegte Objekte festlegt. SQL-Beispiel für der Verwendung der Storage Klausel: storage ( initial next minextents 1 maxextents pctincrease 0 freelists 1 freelist groups 1 optimal 7k buffer_pool default )
11 initial Spezifiziert die Größe (in Bytes) des ersten Extents. next Spezifiziert die Größe (in Bytes) des zweiten Extents. pctincrease Spezifiziert die Größe des n-ten Extents. Die größe des n-ten Extents = pctincrease * der Größe des (n-1)-ten Extents. Pctincrease sollte auf 0 gesetzt sein, um die Fragmentierung des Tablespace zu reduzieren. minextents Spezifiziert die anfängliche Anzahl der Extents. Dadruch lässt sich bereits einen große Menge Speicher allokieren wenn man ein Objekt erstellt, selbst, wenn der Speicher nicht fortlaufend ist. Der Default- und Minimumwert ist 1, womit nur das anfängliche Extent allokiert wird. Für Rollback-Segmente ist das Minimum 2. Die Maximal-Größe hängt vom verwendeten Betriebssystem ab. maxextents Spezifiziert die maximale Anzahl von Extents, die ein Objekt haben kann. Der Minimum-Wert für diese Spezifikation ist 1, außer für Rollback-Segmente, da liegt der Minimum-Wert, genau wie bei maxextents bei 2. Der Default-Wert hängt von der Größe der Datenblöcke ab. Des Weiteren kann hier auch der Wert unlimited angegeben werde, wenn gewünscht ist, dass bei Bedarf automatisch neue Extents allokiert werden. Dies sollte nicht für Rollback-Segmente verwendet werden, das dies ermöglicht, dass lang läufige DML-Transaktionen mit dem Erstellen neuer Extents fort fahren, bis die Platte voll ist. freelists Spezifiziert für andere Objekte als Tablespaces und Rollback-Segmente,die Anzahl der freien Listen für jede der Gruppen freier Listen eine Tablle, eine Partition, ein Cluster, oder einen Index. Default- und Minimum-Parameter sind 1, so, dass jede Gruppe freier Listen eine frei Tabelle beinhaltet. Der Maximalwert hängt von der Größe der Datenblöcke ab. Wenn ein zu großer Wert für freelists angegeben wird, gibt Oracle eine Fehlermeldung mit dem Maximalwert zurück. freelist groups Spezifiziert die Anzahl der Gruppen freier Listen für das Datenbankobjekt, dass man erstellt. Der Default- und Minimumwert dieses Parameters liegt bei 1. Jede Gruppe benutzt einen Datenbankblock. Es gilt: Wenn für initial ein zu geringer Wert angeben wird, wird Oracle automatisch den Wert auf den nötigen Betrag erhöhen Wenn man ein Objekt in einem uniformen Lokal gemanageten Tablespace erstellt, und die Extent-Größe ist nicht groß genug, um die Anzahl an Gruppen zu aufzunehmen, wird create- Operation fehlschlagen..
12 buffer_pool Der Wert von buffer_pool folgende Werte annehmen: keep recycle default KEEP spezifiziert, dass Blöcke aus dem Segment in den KEEP Bufferpool getan werden. RECYCLE spezifiziert, dass Blöck aus dem Segment in den RECYCLE-Pool getan werden. DEFAULT zeigt den default-bufferpool an. Dieser Parameter kann nur für create table, create index, create cluster, alter table, alter index und alter cluster spezifiziert werden. optimal Das Optimum kann nur für rollback-segemente spezifiziert werden. Es spezifiziert die optimale Größe (in Bytes) für ein Rollback-Segment. Oracle versucht die Größe des Rollback-Segments durch das automatische Freigeben von Extents, wenn ihr Inhalt nicht mehr für aktive Transaktionen benötigt wird, beizubehalten. Des Weiteren werden so viele Extents wie möglich frei gegeben, ohne die komplette Größe des Segments unter den bei OPTIMAL spezifizierten Wert fällt. Der Wert von OPTIMAL kann nicht niedriger als der zuvor von den Anderen Parametern allokierte Speicher. Der Maximalwert hängt vom Betriebssystem ab. Oracle rundet Werte auf das nächste Vielfache der Blockgröße auf. Es kann auch der Wert NULL angegeben werden. Das heißt es gibt keine optimale Größe. Demnach wird Oracle nie Extents frei geben. Dieses ist das Default-Verhalten. 5. Unterstützte Indexstrukturen: 5.1 B*Indizes: B*Indizes sind die klassischen Indizes in Oracle-Datenbanken und basieren auf einem B*-Baum. Sie zeigen ein gutes Sperrverhalten, da immer nur der momentan von einer Transaktion bearbeitete Eintrag gesperrt wird. Dadurch werden keine unnötigen Wartezeiten bei gleichzeitig operierenden Transaktionen ausgelöst. Dadurch ist allerdings höher als, der Bitmap-Indizes mit ihrem ungünstigen Sperrverhalten. Dadurch entstehen mehr Kosten, da beim Zugriff mehr Indexblöcke gelesen werden müssen. Das führt außerdem dazu, dass Mischoperationen mit B*-Indizes wesentlich aufwendiger sind als bei Bitmap-Indizes. Um unnötige Mischoperationen zu vermeiden kann deshalb einen zusammengesetzter Index angelegt werden.
13 5.2 Bitmap-Indizes: Bei einem Bitmap-Index wird eine Bitmaske gespeichert, die bestimmte Werte repräsentiert, die nur ein Zustände annehmen können. Dieses findet zum Beispiel bei der Charakterisierung von Personen Anwendung, wo bestimmte Zustände wie ledig, oder verheiratet, männlich, oder weiblich gespeichert werden. In der Bitmapstruktur wird ein zweidimensionales Feld erstellt, mit einer Spalte für jede Zeile der zu indizierenden Tabelle. Jede Spalte repräsentiert einen bestimmten Wert im Bitmap-Index. Dieses zweidimensionale Feld repräsentiert jeden Wert im Index, vervielfacht um die Anzahl der Zeilen in der Tabelle. Bei der Zeilenabfrage dekomprimiert die Bitmap in den RAM-Datenpuffer, so das es sie schnell auf Treffer gescant werden kann. Diese Treffer werden Oracle in Form einer Row-ID-Liste zurück geliefert. Der echte Vorteil von Bitmap-Indizierung tritt zu Tage, wenn eine Tabelle mehrere Bitmap-indexe beinhaltet. Das erstellen von multiplen Bitmap-Indizes liefert eine gute Methode, um schnell komplizierte SQL-Anfragen zu beantworten. Da sich maximal nur zwei physische Bitmaps einen Block teilen, können abhängig von der Blockgröße und Komprimierung Tausende von Datensätzen in einer Bitmap referenziert werden. Dieser Vorteil kann auch als Nachteil wirken. Werden Spalten geändert, die durch einen Bitmapindex indiziert wurden, wird das ganze physische Bitmap gesperrt. Das heißt von der Sperrung können wiederum tausende von Datensätzen betroffen sein. Bitmaps können optimal eingesetzt werden, wenn die betreffende Spalte äußerstem selten geändert wird, die Kardinalität der Spalten niedrig ist, oder die Tabellen viele Datensätzen enthalten. Wegen ihres Sperrverhaltens dürfen Bitmap-Indizes keines Falls für Spalten angelegt werden, die gleichzeitig von mehreren Transaktionen verändert werden. Beispiel für einen Bitmap-Index: pid F K Pid: Personen-ID F: Familienstand (0=Ledig, 1=Verheiratet) K: Kinder (0=keine Kinder, 1=Kinder) pid F K Die grün markierte ROW wird durch eine Transaktionen verändert. Alle anderen daten der Bitmaske werden auch gesperrt. Die Transaktion in der gelb markierten ROW kann nicht zugreifen.
14 5.3 Bitmap-Join-Indizes Bei Bitmap-Join-Indizes werden Tabellen anhand von Spaltenwerten anderer Tabellen die über Fremdschlüssel mit der Tabelle verbunden sind indiziert. Dadurch können Join-Operationen im Index vorbereitet werden. Dadurch sind für einen Join keine Zugriffe auf Fremdschlüssel-Tabellen mehr nötig. Die Where-Klauseln können über den Bitmap-Join-Index aufgelöst werden. Dadurch kann die Performance der Datenbank erhöht werden. Ein Beispiel für die Verwendung von Bitmap-Join-Indizes: Eine Tabelle mit Wettkampfteilnehmern setzt sich sich aus bestimmten Werten zusammen. Darunter auch Fremdschlüssel auf einen Trainer und ein Herkunftsland. Trainer Tid Name Alter Herkunft Land Cid Name Einwohnerzahl Kontinent Spieler... Tid Cid Name Erstellen eines Bitmap-Join-Indexes: create bitmap index trainer_land_spieler on spieler(trainer.herkunft,land.kontinent) from spieler s, trainer t, land l where s.tid=t.tid and s.cid=l.cid; Um die Funktionsweise zu verdeutlichen sollen nun alle Trainer ausgewählt werden, deren Spieler und sie selbst aus Asien stammen. Verwendung Select name from trainer natural join spieler natural join land where herkunft = 'Asien' and kontinent = 'Asien'
15 Normalereise würde diese Anfrage mit einem nested-loop- Join oder hash-join für alle drei Tabellen bedient werden. Mit einem Bitmap-Join-Index sind die die Tabellen schon vorgejoint und die Query kann schnell eine Row-ID passender Rows in allen drei Tabellen erhalten. Oracle-Benchmarks zeigen, dass ein Bitmap-Join-Index eine Anfrage bis zu acht mal schneller bearbeiten können, als herkömmliche Indizierungsmethoden. 5.4 Reverse Key-Indizes Reverse Key-Indizes sind eine Variante der B*Indizes. Dabei werden die Schlüsselwerte in den Index-Blättern in umgekehrter Zeichenreihenfolge abgespeichert. Aus 'Jim' wird 'mij', aus 'Bob' wird 'bob'. Der Nutzen besteht vor allen darin, dass Schlüssel, die normaler Weise auf einem Blatt zusammen stünden, auf verschiedene Blätter verteilt. Das gleiche gilt für Operationen die diese Schlüsselwerte verändern. Dadurch können I/O-Operationen besser auf verschiedene Index-Blätter verteilt werden 5.5 Funktionale Indizes Funktionale Indizes werden im Kontext mit Funktionen oder Ausdrücken angelegt, die sich auf Spalten der betreffenden Tabelle beziehen. Dabei werden die von den Funktionen zurückgegebenen Werte indiziert. Dabei können sowohl vordefinierte SQL-Funktionen verwendentet werden, als auch jegliche vom Benutzer definierte Funktion. Da der Rückgabewert einer Funktion beliebig ist können Funktionale Indizes als B*Baum- oder Bitmap-Index angelegt werden.
16 Quellen: Oracle9i für den DBA Uwe Herrmann Oracle9i Index-Organized Tables Technical Whitepaper
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
MehrOracle 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
MehrOracle 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
MehrOracle 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.
MehrDOAG 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
MehrPerformance in der Oracle Datenbank von Anfang an
Performance in der Oracle Datenbank von Anfang an Marco Mischke, 26.04.2018 DOAG Regional Agenda Tabellen Indizes Ausführungspläne SQL vs PL/SQL Tabellen Zu 99% werden Standard Strukturen zur Speicherung
MehrDatenbankdesign. 3.1 Namenskonventionen. Oracle9i für den DBA ISBN X
Datenbankdesign Oracle9i für den DBA ISBN 3-8273-1559-X Beim Aufbau jeder Datenbank und jedes Datenbankschemas sind eine Fülle von Designentscheidungen zu treffen. Diese Entscheidungen stehen auf der einen
MehrPhilipp Nebel, 05 IN. Speicherung von Datenbank-Objekten in Oracle
Philipp Nebel, 05 IN Speicherung von Datenbank-Objekten in Oracle 1. Allgemeines Diese Ausarbeitung soll sich mit der Speicherung von Datenbankobjekten des RDBMS Oracle beschäftigen. Als Datenbankobjekte
MehrDatenschutz: 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
MehrDatenbank 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
MehrIndex- und Zugriffsstrukturen für. Holger Brämer, 05IND-P
Index- und Zugriffsstrukturen für Data Warehousing Holger Brämer, 05IND-P Index- und Zugriffstrukturen für Data Warehousing Materialisierte Sichten Bitmap-Indexe Verbundindexe Materialisierte Sichten gehören
MehrOracle 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.
MehrOracle 9i Einführung. Performance Tuning. Kurs. Teil 8 Indizes. Universität Hannover. Installation. Index-Typen. Anhang.
Kurs Oracle 9i Einführung Performance Tuning Teil 8 Indizes Grid Einführung Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 15 Seite 1 von 15 Agenda 1. Einführung 2. 3. B*Tree-Index 4. Bitmap-Index Grid
MehrPartitioning 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
Mehr12. Datenschutz: Zugriffsrechte in SQL Datenschutz: Zugriffsrechte in SQL
12. Datenschutz: Zugriffsrechte in SQL 12-1 Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten
MehrGliederung. 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:
MehrPartitioning 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,
MehrAutomatisierung von Tabellen- und Index-Reorganisationen
UB SERVICES ZIT P Automatisierung von Tabellen- und Index-Reorganisationen SAP/Oracle-Umfeld 2 Agenda 1. Wie Fragmentierung entsteht Objekt-Fragmentierung Tablespace-Fragmentierung 2. Problematik bei Fragmentierung
MehrCluster-Bildung. VL Datenbanken II 4 107
Cluster-Bildung gemeinsame Speicherung von Datensätzen auf Seiten wichtige Spezialfälle: Ballung nach Schlüsselattributen. Bereichsanfragen und Gruppierungen unterstützen: Datensätze in der Sortierreihenfolge
MehrAufbau 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
MehrPartitionierung 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
MehrIndexstrategien 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,
MehrIndizes 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
MehrOracle Indexing Primer
Oracle Indexing Primer Data Warehousing and Data Mining Patrick Schäfer Berlin, 18. Dezember 2017 patrick.schaefer@hu-berlin.de Vorlesung: Übung: https://hu.berlin/vl_dwhdm17 https://hu.berlin/ue_dwhdm17
MehrDOAG Index Tuning
DOAG Index Tuning 2010-1 DOAG Index Tuning 2010-2 DOAG Index Tuning 2010-3 DOAG Index Tuning 2010-4 DOAG Index Tuning 2010-5 Ausführliche Syntax: CREATE [UNIQUE] INDEX [.] ON TABLE [.]
MehrPartitionierungsstrategien 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
MehrRelationales 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
MehrOracle 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
MehrKapitel 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
MehrOnline Table Shrink. Freigabe von ungenutztem Speicherplatz. Autor: Ralf Durben, ORACLE Deutschland GmbH
Online Table Shrink Freigabe von ungenutztem Speicherplatz Autor: Ralf Durben, ORACLE Deutschland GmbH DOAGNews Q2_2004 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere
MehrDATENBANKEN 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.
MehrDatenbank 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`
MehrOracle Index Tuning &Admin
Oracle Index Tuning &Admin Marco Patzwahl MuniQSoft GmbH München-Unterhaching Schlüsselworte: SQL, PL/SQL, DBA Zusammenfassung Indizes sind ein erprobtes Mittel, um SQL-Abfragen zu beschleunigen. Aber
MehrAUFBAU EINER ORACLE DATENBANK MARTIN CLAUS & UWE GÄRTNER
AUFBAU EINER ORACLE DATENBANK MARTIN CLAUS & UWE GÄRTNER GLIEDERUNG 1. Tablespaces 2. Arten von Dateien 3. Oracle Datenbank-Objekte 4. Oracle Data Dictionary 5. Prozessarchitektur einer Oracle-Instanz
MehrRow Chaining & Row Migration Alte Bekannte - immer noch aktuell! DOAG 2014 Datenbank Dierk Lenz
Row Chaining & Row Migration Alte Bekannte - immer noch aktuell! DOAG 2014 Datenbank Dierk Lenz Herrmann & Lenz Services GmbH Herrmann & Lenz Solutions GmbH Erfolgreich seit 1996 am Markt Firmensitz: Burscheid
MehrIn 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?
MehrIndizes. Index. Datenfeld Normale Tabelle. Gesucht wird: Zugriff. 3. Zugriff 1. Zugriff.
Indizes Gesucht wird: 44791 Index Normale Tabelle 1. Zugriff 1 44789 2. Zugriff 2 44801 3. Zugriff 3 44797 4. Zugriff 4 44388 5. Zugriff 5 44746 6. Zugriff 6 44787 7. Zugriff 7 44793 8. Zugriff 8 44799
MehrDatenzugriffskomponente mit JPA 2.1
Datenzugriffskomponente mit JPA 2.1 (Grundlagen der Java Persistence Architecture) Vladislav Faerman Gliederung Einführung Konfiguration Objekt-Relationales Mapping (ORM) mit JPA Das zentrale Konzept der
MehrDateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1
Dateiorganisation und Zugriffsstrukturen Prof. Dr. T. Kudraß 1 Mögliche Dateiorganisationen Viele Alternativen existieren, jede geeignet für bestimmte Situation (oder auch nicht) Heap-Dateien: Geeignet
MehrMethoden zum Befüllen von SCD2
www.immobilienscout24.de Methoden zum Befüllen von SCD2 Berlin 08.12.2010 Dierk Bachmann Inhaltsverzeichnis (1) Gewünschte Eigenschaften von SCD2s (2) Befüllen per Merge (3) Befüllen mit Exchange Partition
MehrOracle 10g Einführung
Kurs Oracle 10g Einführung Teil 8 Indizes und Suchbäume Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 15 Seite 1 von 15 Agenda 1 Einleitung 2 Binäre Suchbäume
MehrSQL. 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
MehrSchnellübersichten. SQL Grundlagen und Datenbankdesign
Schnellübersichten SQL Grundlagen und Datenbankdesign 5 Datenbanken 2 6 Tabellen erstellen und verwalten 3 7 Daten einfügen, aktualisieren, löschen 4 8 Einfache Datenabfragen 5 9 Schlüsselfelder und Indizes
MehrEine neue Datenbank erstellen
Eine neue Datenbank erstellen Eine neue Datenbank erstellen Eine Tabelle in der Entwurfsansicht erstellen Eine Tabelle in der Entwurfsansicht erstellen Eine Tabelle in der Entwurfsansicht erstellen Das
MehrDie InnoDB Storage Engine. Handy aus?
Die InnoDB Storage Engine Kristian Köhntopp Handy aus? InnoDB: Vorteile, Nachteile Vorteile: Transaktionen MVCC Row Locks OLTP Concurrency Crash-Recovery Nachteile: Höherer Platzbedarf Höherer Speicherbedarf
MehrWarum wird mein Index nicht benutzt?
Warum wird mein Index nicht benutzt? Index Nutzung-1 Tätigkeitsbereiche: Oracle Support Hotline: Mo-Fr 8.00 18.00 Uhr Erweiterung um eine Rufbereitschaft auch am Wochenende möglich Oracle IT-Consulting
MehrDatenbanken II. Datenbankobjekte. von Werner Hahn, 05IND-P - 1 -
Datenbanken II Datenbankobjekte von Werner Hahn, 05IND-P - 1 - Inhaltsverzeichnis 1 Tabellen... 3 1.1 Relationale Tabellen... 3 1.2 Temporäre Tabellen... 4 1.3 Indexorganisierte Tabellen... 4 1.4 Object
MehrCopyright 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
MehrErzeugung 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
MehrIndex 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
MehrReference 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
MehrKurs. 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.
MehrAufbau 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Ü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
MehrDatenbanken 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
MehrKlausur PI Datenbanken II vom Name: Praktische Informatik (Krägeloh)
Versehen Sie jedes Aufgabenblatt/-blätter mit Ihrem Namen und geben es mit ab! Seite 1 Aufgabe 1: ( 30 Punkte) 1) Ein Entity-Set E1 wird in die Subklassen S1 und S2 spezialisiert. Was bedeutet die Aussage:
Mehr8. Tabellendefinition in SQL 8-1. Tabellendefinitionen
8. Tabellendefinition in SQL 8-1 Tabellendefinitionen 8. Tabellendefinition in SQL 8-2 Inhalt 1. Schlüssel 2. Fremdschlüssel 3. CREATE TABLE-Syntax 4. DROP TABLE 5. ALTER TABLE 8. Tabellendefinition in
MehrCopyright 2013, Oracle and/or its affiliates. All rights reserved.
1 1997 Effiziente Speicherung für SAP 8.0 Jörn Bartels Architect Oracle Database Server Technologies 2 Effiziente Speicherungsformen Ziele Index Komprimierung Index Organized Tables Ergebnisse 3 Ziele
Mehrmit konventionellen Datenbanksystemen konventionellen Datenbanksystemen
Stream-Verwaltung mit konventionellen Datenbanksystemen Christian Rensch.06.005 Seminar Data Streams Thema Verwaltung von Datenströmen in konventionellen Datenbanksystemen optimiert auf Daten geringer
MehrOptimiertes 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
MehrEs 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.
Mehr4. Objektrelationales Typsystem Kollektionstypen. Nested Table
Nested Table Bei einer Nested Table handelt es sich um eine Tabelle als Attributwert. Im Gegensatz zu Varray gibt es keine Beschränkung bei der Größe. Definition erfolgt auf einem Basistyp, als Basistypen
MehrDOAG Treffen September
DOAG Treffen September Erfahrungen mit der Partitionierungsoption des RDBMS Oracle Martin Bach Überblick Strategie Weshalb Partitionierung? Partitionierung in OLTP/DWH Umgebungen Realisierung Indexe Performance
MehrArbeit mit zusammengesetzten Datentypen
Arbeit mit zusammengesetzten Datentypen Zusammengesetzte Datentypen Typen: PL/SQL RECORDS PL/SQL TABELLEN Enthalten interne Komponenten Sind wiederverwendbar Copyright Oracle Corporation, 1998. All rights
MehrAufbau einer Oracle Datenbank Tablespace, Arten von Dateien
Aufbau einer Oracle Datenbank Tablespace, Arten von Dateien Boris Meißner 05-INDT Fachbereich Informatik, Mathematik und Naturwissenschaften HTWK-Leipzig 05. Juni 2008 Boris Meißner (Fb IMN - HTWK-Leipzig)
MehrWintersemester 2016/ Matrikelnummer: Hinweise. Unterschrift
Fachbereich für Computerwissenschaften Prof. Dr. Nikolaus Augsten Jakob-Haringer-Str. 2 5020 Salzburg, Austria Telefon: +43 662 8044 6347 E-Mail: nikolaus.augsten@sbg.ac.at Datenbanken II Prüfung Wintersemester
MehrÜbung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten
Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten 12.1.2004 Änderungsoperationen bei SQL (Daten) Einfügen neuer Tupel (schon bekannt) INSERT INTO Table (Spalte1, Spalte2)
MehrOracle native json Support. Erste Schritte
Oracle native json Support Erste Schritte 1 Ausgangslage Als erster Schritt erstellen wir eine Tabelle, die wir für den weiteren Verlauf brauchen werden. Die Felder Id, Created und Username sind normale
MehrIm 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Ü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
MehrIntroduction 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
MehrVorlesung Datenbanken II B Nachklausur
Prof. Dr. Stefan Brass 28. März 2007 Institut für Informatik MLU Halle-Wittenberg Vorlesung Datenbanken II B Nachklausur Name: Matrikelnummer: Studiengang: Aufgabe Punkte Max. Punkte Zeit 1 (Datenspeicherung)
MehrInhalt. 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
MehrWillkommen. Datenbanken und Anbindung
Willkommen Datenbanken und Anbindung Welche stehen zur Wahl? MySQL Sehr weit verbreitetes DBS (YT, FB, Twitter) Open-Source und Enterprise-Version Libs in C/C++ und Java verfügbar Grundsätzlich ist ein
Mehr[W, T4, D, 15] [start_transaction, T3] [W, T3, C, 30] [W, T4, A, 20] [commit, T4] [W, T2, D, 25] System Crash
Übungen Aufgabe 1 Geben ist die folgende Logdatei: [start_transaction, T1] [W, T1, D, 20] [commit, T1] [checkpoint] [start_transaction, T2] [W, T2, B, 12] [start_transaction, T4] [W, T4, D, 15] [start_transaction,
MehrPrakt. Datenbankprogrammierung. Sommersemester Was sind Constraints? I,11: Verwendung von Constraints. Festlegung von Constraints
Prakt. Datenbankprogrammierung Sommersemester 2005 I,11: Verwendung von Constraints Was sind Constraints? Constraints stellen Regeln auf Tabellenebene sicher. Constraints verhindern das Löschen aus einer
MehrSQL. 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:
MehrAndrea 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
MehrPartitionierung 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,
MehrMS SQL Server: Index Management. Stephan Arenswald 10. Juli 2008
MS SQL Server: Index Management Stephan Arenswald 10. Juli 2008 Agenda 1. Einführung 2. Grundlagen Tabellen 3. Grundlagen Indexe 4. Indextypen 5. Index-Erstellung 6. Indexe und Constraints 7. Und Weiter...?
MehrDatenbank-Tuning. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München
Kapitel 7 Datenbank-Tuning Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester
MehrIndexe. Ein Index = eine Struktur auf Platte, die einer Tabelle oder Sicht zugeordent ist, um die Tupeln in der Tabelle oder Sicht schneller abzurufen
Indexe im Praxis Indexe Ein Index = eine Struktur auf Platte, die einer Tabelle oder Sicht zugeordent ist, um die Tupeln in der Tabelle oder Sicht schneller abzurufen Gute Indexierung schnelle Applikation
MehrSQL 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
MehrDatenbanken im WI-Unterricht mit
Datenbanken im WI-Unterricht mit Inhaltsverzeichnis 1 ER-Modell - Entity Relationship Modell 1 1.1 Entitäten................................................. 2 1.2 Relationen................................................
MehrErzeugen 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
MehrDOAG Konferenz Was Sie bei modernen Datenbank-Systemen anders machen müssen!
oracledeli.wordpress.com DOAG Konferenz 2015 Was Sie bei modernen Datenbank-Systemen anders machen müssen! Matthias Schulz Selbständiger Software- und Datenbankentwickler: Consulting Schulungen Workshops
MehrDatenbanken 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
MehrMySQL-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
MehrOracle Datenbank - Tuning
Oracle Datenbank - Tuning H.-G. Hopf Georg-Simon-Ohm Fachhochschule Nürnberg Datenbank Tuning / 1 Η. G.Hopf / 10.04.2003 Inhaltsverzeichnis Tuning Datenstruktur-Ebene SQL-Befehls-Ebene Anwendungsebene
MehrPartitionieren 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
MehrIndex 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
MehrForeign Keys. MySQL 4, 5. Kapitel 16: Fremdschlüssel. Marcel Noe
MySQL 4, 5 Kapitel 16: Fremdschlüssel Gliederung 1 Gliederung 1 Fremdschlüssel sichern die Referenzielle Integrität voneinander abhängiger Tabellen. Um Fremdschlüssel definieren zu können, müssen Sie die
MehrÜben von DDL und DML. Ergebnis:
SQL DDL Üben von DDL und DML https://www.jdoodle.com/execute-sql-online Ergebnis: Befehlsgruppen in SQL DDL Data Definition Language DML Data Manipulation Language CREATE: Tabellen anlegen DROP: Tabellen
MehrÜ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
MehrDatenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten
Seminararbeit vorgelegt von: Gutachter: Studienbereich: Christian Lechner Dr. Georg Moser Informatik Datum: 6. Juni 2013 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung in Datenbanken 1 1.1 Motivation....................................
MehrNutzung 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
Mehr3 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
MehrMultimedia im Netz Wintersemester 2013/14. Übung 03 (Nebenfach)
Multimedia im Netz Wintersemester 2013/14 Übung 03 (Nebenfach) Ludwig-Maximilians-Universität München Multimedia im Netz WS 2013/14 - Übung 3-1 Datenbanken und SQL Mit Hilfe von Datenbanken kann man Daten
MehrFehlertoleranz 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