Datenbanken II Speicherung und Verarbeitung großer Objekte...

Post on 27-Oct-2019

1 views 0 download

Transcript of Datenbanken II Speicherung und Verarbeitung großer Objekte...

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Datenbanken IISpeicherung und Verarbeitung großer

Objekte (Large Objects [LOBs])

Jörg Kohlsdorf

Hochschule für Technik, Wirtschaft und Kultur Leipzig

06.06.2008

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Inhalt der Präsentation

1 Was sind Large Objects (LOBs)?

2 Motivation (Warum Daten nicht in LONGs speichern?)

3 SQL Standard

4 Einschränkungen bei Verwendung von LOBs

5 Oracle 10g Release 2Interne LOBsExterne LOBsBeispielTuningansätzeTuningansätze - STORAGE-Klausel

6 Fragen?

7 Quellenangabe

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Was sind Large Objects (LOBs)?

LOBs sind eine Klasse von Datentypen die dafür konstruiertsind, große Datenmengen aufzunehmenEin LOB kann je nach Konfiguration des Datenbanksystemszwischen 1 und 128 TB an Daten aufnehmenDaten in LOBs zu speichern ermöglicht effiziente Zugriffe undHandhabung dieser Daten innerhalb der Applikationen, die diesenutzenLOBs unterliegen ebenfalls dem Transaktionsprinzip (ACID) - siekönnen mit einem ROLLBACK rückgängig gemacht werden

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Was sind Large Objects (LOBs)?

LOBs sind eine Klasse von Datentypen die dafür konstruiertsind, große Datenmengen aufzunehmenEin LOB kann je nach Konfiguration des Datenbanksystemszwischen 1 und 128 TB an Daten aufnehmenDaten in LOBs zu speichern ermöglicht effiziente Zugriffe undHandhabung dieser Daten innerhalb der Applikationen, die diesenutzenLOBs unterliegen ebenfalls dem Transaktionsprinzip (ACID) - siekönnen mit einem ROLLBACK rückgängig gemacht werden

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Was sind Large Objects (LOBs)?

LOBs sind eine Klasse von Datentypen die dafür konstruiertsind, große Datenmengen aufzunehmenEin LOB kann je nach Konfiguration des Datenbanksystemszwischen 1 und 128 TB an Daten aufnehmenDaten in LOBs zu speichern ermöglicht effiziente Zugriffe undHandhabung dieser Daten innerhalb der Applikationen, die diesenutzenLOBs unterliegen ebenfalls dem Transaktionsprinzip (ACID) - siekönnen mit einem ROLLBACK rückgängig gemacht werden

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Was sind Large Objects (LOBs)?

LOBs sind eine Klasse von Datentypen die dafür konstruiertsind, große Datenmengen aufzunehmenEin LOB kann je nach Konfiguration des Datenbanksystemszwischen 1 und 128 TB an Daten aufnehmenDaten in LOBs zu speichern ermöglicht effiziente Zugriffe undHandhabung dieser Daten innerhalb der Applikationen, die diesenutzenLOBs unterliegen ebenfalls dem Transaktionsprinzip (ACID) - siekönnen mit einem ROLLBACK rückgängig gemacht werden

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Motivation (Warum Daten nicht in LONGs speichern?)

LOB Kapazität

Kapazität der LONG und LONG RAW Datentypen sind in Oracle auf2GB limitiert

Anzahl LOB-Spalten pro Tabelle

Eine Tabelle kann mehrere LOB-Spalten haben, aber nur eine LONG-oder LONG RAW-Spalte (Oracle)

wahlfreier Zugriff

LOBs unterstützen wahlfreien Zugriff auf die DatenLONGs unterstützen nur sequentiellen Zugriff

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Motivation (Warum Daten nicht in LONGs speichern?)

LOB Kapazität

Kapazität der LONG und LONG RAW Datentypen sind in Oracle auf2GB limitiert

Anzahl LOB-Spalten pro Tabelle

Eine Tabelle kann mehrere LOB-Spalten haben, aber nur eine LONG-oder LONG RAW-Spalte (Oracle)

wahlfreier Zugriff

LOBs unterstützen wahlfreien Zugriff auf die DatenLONGs unterstützen nur sequentiellen Zugriff

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Motivation (Warum Daten nicht in LONGs speichern?)

LOB Kapazität

Kapazität der LONG und LONG RAW Datentypen sind in Oracle auf2GB limitiert

Anzahl LOB-Spalten pro Tabelle

Eine Tabelle kann mehrere LOB-Spalten haben, aber nur eine LONG-oder LONG RAW-Spalte (Oracle)

wahlfreier Zugriff

LOBs unterstützen wahlfreien Zugriff auf die DatenLONGs unterstützen nur sequentiellen Zugriff

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

SQL StandardDer SQL-99 (SQL3) Standard definiert für LOBs:

Datentypen: BLOB, CLOBDeklaration: <Attributname> BLOB|CLOB [(<Länge>)]Länge: Länge des LOB-Inhalts in Bytes, optional: K, M, G

Der Standard gibt keine Vorgaben für die Verarbeitung (Speichern,Füllen, Auslesen) von LOBs.

Beispiel

CREATE TABLE LOBTable ( key INTEGER , image BLOB (5M) ,t e x t CLOB(50K) ) ;

Operationen

substring(), overlay(), trim(), position(), bit_length(), char_length(),octet_length()

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

SQL StandardDer SQL-99 (SQL3) Standard definiert für LOBs:

Datentypen: BLOB, CLOBDeklaration: <Attributname> BLOB|CLOB [(<Länge>)]Länge: Länge des LOB-Inhalts in Bytes, optional: K, M, G

Der Standard gibt keine Vorgaben für die Verarbeitung (Speichern,Füllen, Auslesen) von LOBs.

Beispiel

CREATE TABLE LOBTable ( key INTEGER , image BLOB (5M) ,t e x t CLOB(50K) ) ;

Operationen

substring(), overlay(), trim(), position(), bit_length(), char_length(),octet_length()

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

SQL StandardDer SQL-99 (SQL3) Standard definiert für LOBs:

Datentypen: BLOB, CLOBDeklaration: <Attributname> BLOB|CLOB [(<Länge>)]Länge: Länge des LOB-Inhalts in Bytes, optional: K, M, G

Der Standard gibt keine Vorgaben für die Verarbeitung (Speichern,Füllen, Auslesen) von LOBs.

Beispiel

CREATE TABLE LOBTable ( key INTEGER , image BLOB (5M) ,t e x t CLOB(50K) ) ;

Operationen

substring(), overlay(), trim(), position(), bit_length(), char_length(),octet_length()

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Einschränkungen bei Verwendung von LOBs

dürfen nicht Teil eines Primärschlüssels seindürfen nicht Teil eines Index seindürfen nicht in der ORDER BY oder GROUP BY - Klausel bzw.in Aggregationen vorkommen

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Einschränkungen bei Verwendung von LOBs

dürfen nicht Teil eines Primärschlüssels seindürfen nicht Teil eines Index seindürfen nicht in der ORDER BY oder GROUP BY - Klausel bzw.in Aggregationen vorkommen

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Einschränkungen bei Verwendung von LOBs

dürfen nicht Teil eines Primärschlüssels seindürfen nicht Teil eines Index seindürfen nicht in der ORDER BY oder GROUP BY - Klausel bzw.in Aggregationen vorkommen

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Oracle 10g Release 2

In Oracle 10g werden 2 LOB-Typen unterschieden:

interne LOB-Typen

Standardtypen aus SQL-99: CLOB, BLOBNCLOB (National Character LOB)

externe LOB-Typen

BFILE (Binary File)

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Oracle 10g Release 2

In Oracle 10g werden 2 LOB-Typen unterschieden:

interne LOB-Typen

Standardtypen aus SQL-99: CLOB, BLOBNCLOB (National Character LOB)

externe LOB-Typen

BFILE (Binary File)

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Interne LOBs

Transaktionskonzept - ACID (ROLLBACK möglich)Werte werden im Tablespace der DB gespeichertLänge < 3964 Bytes, so kann Datensatz in Tabelle gespeichertwerdenLänge > 3964 Bytes, wird Datensatz außerhalb der Tabellegespeichert, Datensatzes enthält Lokator, der auf physischenSpeicherort verweistFür Verarbeitung von LOB-Werten, die nicht in der DBgespeichert werden sollen, bietet Oracle die DatentypenTEMPORARY BLOB / CLOB anInitialisierung von LOB-Attributen erfolgt mit EMPTY_BLOB()bzw. EMPTY_CLOB() - dies erzeugt einen leeren Lokator (auchnötig, wenn LOB NULL enthält)

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Interne LOBs

Transaktionskonzept - ACID (ROLLBACK möglich)Werte werden im Tablespace der DB gespeichertLänge < 3964 Bytes, so kann Datensatz in Tabelle gespeichertwerdenLänge > 3964 Bytes, wird Datensatz außerhalb der Tabellegespeichert, Datensatzes enthält Lokator, der auf physischenSpeicherort verweistFür Verarbeitung von LOB-Werten, die nicht in der DBgespeichert werden sollen, bietet Oracle die DatentypenTEMPORARY BLOB / CLOB anInitialisierung von LOB-Attributen erfolgt mit EMPTY_BLOB()bzw. EMPTY_CLOB() - dies erzeugt einen leeren Lokator (auchnötig, wenn LOB NULL enthält)

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Interne LOBs

Transaktionskonzept - ACID (ROLLBACK möglich)Werte werden im Tablespace der DB gespeichertLänge < 3964 Bytes, so kann Datensatz in Tabelle gespeichertwerdenLänge > 3964 Bytes, wird Datensatz außerhalb der Tabellegespeichert, Datensatzes enthält Lokator, der auf physischenSpeicherort verweistFür Verarbeitung von LOB-Werten, die nicht in der DBgespeichert werden sollen, bietet Oracle die DatentypenTEMPORARY BLOB / CLOB anInitialisierung von LOB-Attributen erfolgt mit EMPTY_BLOB()bzw. EMPTY_CLOB() - dies erzeugt einen leeren Lokator (auchnötig, wenn LOB NULL enthält)

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Interne LOBs

Transaktionskonzept - ACID (ROLLBACK möglich)Werte werden im Tablespace der DB gespeichertLänge < 3964 Bytes, so kann Datensatz in Tabelle gespeichertwerdenLänge > 3964 Bytes, wird Datensatz außerhalb der Tabellegespeichert, Datensatzes enthält Lokator, der auf physischenSpeicherort verweistFür Verarbeitung von LOB-Werten, die nicht in der DBgespeichert werden sollen, bietet Oracle die DatentypenTEMPORARY BLOB / CLOB anInitialisierung von LOB-Attributen erfolgt mit EMPTY_BLOB()bzw. EMPTY_CLOB() - dies erzeugt einen leeren Lokator (auchnötig, wenn LOB NULL enthält)

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Interne LOBs

Transaktionskonzept - ACID (ROLLBACK möglich)Werte werden im Tablespace der DB gespeichertLänge < 3964 Bytes, so kann Datensatz in Tabelle gespeichertwerdenLänge > 3964 Bytes, wird Datensatz außerhalb der Tabellegespeichert, Datensatzes enthält Lokator, der auf physischenSpeicherort verweistFür Verarbeitung von LOB-Werten, die nicht in der DBgespeichert werden sollen, bietet Oracle die DatentypenTEMPORARY BLOB / CLOB anInitialisierung von LOB-Attributen erfolgt mit EMPTY_BLOB()bzw. EMPTY_CLOB() - dies erzeugt einen leeren Lokator (auchnötig, wenn LOB NULL enthält)

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Interne LOBs

Transaktionskonzept - ACID (ROLLBACK möglich)Werte werden im Tablespace der DB gespeichertLänge < 3964 Bytes, so kann Datensatz in Tabelle gespeichertwerdenLänge > 3964 Bytes, wird Datensatz außerhalb der Tabellegespeichert, Datensatzes enthält Lokator, der auf physischenSpeicherort verweistFür Verarbeitung von LOB-Werten, die nicht in der DBgespeichert werden sollen, bietet Oracle die DatentypenTEMPORARY BLOB / CLOB anInitialisierung von LOB-Attributen erfolgt mit EMPTY_BLOB()bzw. EMPTY_CLOB() - dies erzeugt einen leeren Lokator (auchnötig, wenn LOB NULL enthält)

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Externe LOBs

BFILE-LOBs sind vom Transaktionsmechanismus ausgenommenLokator verweist auf Betriebssystemdatei ausserhalb der DBin der DB muss ein virtuelles Verzeichnis angelegt werden,welches auf Betriebssystemverzeichnis zeigt, in dem die Dateienliegendieses Verzeichnis muss für die DB lesbar seinBFILE-LOBs sind READ ONLY!

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Externe LOBs

BFILE-LOBs sind vom Transaktionsmechanismus ausgenommenLokator verweist auf Betriebssystemdatei ausserhalb der DBin der DB muss ein virtuelles Verzeichnis angelegt werden,welches auf Betriebssystemverzeichnis zeigt, in dem die Dateienliegendieses Verzeichnis muss für die DB lesbar seinBFILE-LOBs sind READ ONLY!

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Externe LOBs

BFILE-LOBs sind vom Transaktionsmechanismus ausgenommenLokator verweist auf Betriebssystemdatei ausserhalb der DBin der DB muss ein virtuelles Verzeichnis angelegt werden,welches auf Betriebssystemverzeichnis zeigt, in dem die Dateienliegendieses Verzeichnis muss für die DB lesbar seinBFILE-LOBs sind READ ONLY!

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Externe LOBs

BFILE-LOBs sind vom Transaktionsmechanismus ausgenommenLokator verweist auf Betriebssystemdatei ausserhalb der DBin der DB muss ein virtuelles Verzeichnis angelegt werden,welches auf Betriebssystemverzeichnis zeigt, in dem die Dateienliegendieses Verzeichnis muss für die DB lesbar seinBFILE-LOBs sind READ ONLY!

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Externe LOBs

BFILE-LOBs sind vom Transaktionsmechanismus ausgenommenLokator verweist auf Betriebssystemdatei ausserhalb der DBin der DB muss ein virtuelles Verzeichnis angelegt werden,welches auf Betriebssystemverzeichnis zeigt, in dem die Dateienliegendieses Verzeichnis muss für die DB lesbar seinBFILE-LOBs sind READ ONLY!

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Externe LOBs

BFILE-LOBs sind vom Transaktionsmechanismus ausgenommenLokator verweist auf Betriebssystemdatei ausserhalb der DBin der DB muss ein virtuelles Verzeichnis angelegt werden,welches auf Betriebssystemverzeichnis zeigt, in dem die Dateienliegendieses Verzeichnis muss für die DB lesbar seinBFILE-LOBs sind READ ONLY!

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Beispiel

Definition einer Tabelle mit LOB-Datentypen:

CREATE TABLE LOBTable ( key NUMBER,image BLOB DEFAULT EMPTY_BLOB( ) ,imageFi le BFILE ,t e x t CLOB ) ;

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Beispiel

Betriebssystemverzeichnis für BFILE-Datentyp festlegen:

CREATE DIRECTORY IMAGES_DIR AS ’C : \ Images \ ’ ;

Einfügen eines Beispieldatensatzes:

INSERT INTO LOBTable (VALUES ( 1 ,

EMPTY_BLOB( ) ,BFILENAME( ’ IMAGES_DIR ’ , b i l d . g i f ) ,EMPTY_CLOB( )

) ;

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Beispiel

Betriebssystemverzeichnis für BFILE-Datentyp festlegen:

CREATE DIRECTORY IMAGES_DIR AS ’C : \ Images \ ’ ;

Einfügen eines Beispieldatensatzes:

INSERT INTO LOBTable (VALUES ( 1 ,

EMPTY_BLOB( ) ,BFILENAME( ’ IMAGES_DIR ’ , b i l d . g i f ) ,EMPTY_CLOB( )

) ;

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Tuningansätze

Tuningansätze

Modifikation der STORAGE-Klauselsofortiges Freigeben nicht mehr benötigter temporärer LOBs,diese bleiben sonst bis zur Terminierung derDatenbankverbindung im SpeicherLOB in anderen Tablespace als den, der den LOB enthältspeichern - bei mehreren LOBs in einer Tabelle evt. mehrereTablespaces nutzen (auf mehrere Platten verteilen)für kleine LOBs (z.B. <8K) Storage-Klausel so anpassen, daßdiese in der Tabelle gespeichert werden

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Tuningansätze

Tuningansätze

Modifikation der STORAGE-Klauselsofortiges Freigeben nicht mehr benötigter temporärer LOBs,diese bleiben sonst bis zur Terminierung derDatenbankverbindung im SpeicherLOB in anderen Tablespace als den, der den LOB enthältspeichern - bei mehreren LOBs in einer Tabelle evt. mehrereTablespaces nutzen (auf mehrere Platten verteilen)für kleine LOBs (z.B. <8K) Storage-Klausel so anpassen, daßdiese in der Tabelle gespeichert werden

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Tuningansätze

Tuningansätze

Modifikation der STORAGE-Klauselsofortiges Freigeben nicht mehr benötigter temporärer LOBs,diese bleiben sonst bis zur Terminierung derDatenbankverbindung im SpeicherLOB in anderen Tablespace als den, der den LOB enthältspeichern - bei mehreren LOBs in einer Tabelle evt. mehrereTablespaces nutzen (auf mehrere Platten verteilen)für kleine LOBs (z.B. <8K) Storage-Klausel so anpassen, daßdiese in der Tabelle gespeichert werden

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Tuningansätze

Tuningansätze

Modifikation der STORAGE-Klauselsofortiges Freigeben nicht mehr benötigter temporärer LOBs,diese bleiben sonst bis zur Terminierung derDatenbankverbindung im SpeicherLOB in anderen Tablespace als den, der den LOB enthältspeichern - bei mehreren LOBs in einer Tabelle evt. mehrereTablespaces nutzen (auf mehrere Platten verteilen)für kleine LOBs (z.B. <8K) Storage-Klausel so anpassen, daßdiese in der Tabelle gespeichert werden

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Oracle 10g Release 2

STORAGE-Klausel

CREATE TABLE LOBTable (n NUMBER, c CLOB)lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x

PCTVERSION y/RETENTIONCACHE/NOCACHE/CACHE READS LOGGING/NOLOGGINGENABLE/DISABLE STORAGE IN ROWSTORAGE (MAXEXTENTS 5));

CHUNK

Anzahl Oracle Blocks (max: 32K) - Zugriff in großen Chunkseffizienter, verschwendet allerdings Speicherplatz bei kleinerenDaten

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Oracle 10g Release 2

STORAGE-Klausel

CREATE TABLE LOBTable (n NUMBER, c CLOB)lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x

PCTVERSION y/RETENTIONCACHE/NOCACHE/CACHE READS LOGGING/NOLOGGINGENABLE/DISABLE STORAGE IN ROWSTORAGE (MAXEXTENTS 5));

CHUNK

Anzahl Oracle Blocks (max: 32K) - Zugriff in großen Chunkseffizienter, verschwendet allerdings Speicherplatz bei kleinerenDaten

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Oracle 10g Release 2

STORAGE-Klausel

CREATE TABLE LOBTable (n NUMBER, c CLOB)lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x

PCTVERSION y/RETENTIONCACHE/NOCACHE/CACHE READS LOGGING/NOLOGGINGENABLE/DISABLE STORAGE IN ROWSTORAGE (MAXEXTENTS 5));

PCTVERSION

(Default: 10) - Prozentsatz vom LOB-Speicherplatz der für alteVersionen benutzt werden kann, bei seltenen Updates kann Wertverkleinert werden

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Oracle 10g Release 2

STORAGE-Klausel

CREATE TABLE LOBTable (n NUMBER, c CLOB)lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x

PCTVERSION y/RETENTIONCACHE/NOCACHE/CACHE READS LOGGING/NOLOGGINGENABLE/DISABLE STORAGE IN ROWSTORAGE (MAXEXTENTS 5));

RETENTION

alte Versionen werden für eine bestimmte Zeit behalten(einstellbar durch UNDO_RETENTION Parameter)

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Oracle 10g Release 2

STORAGE-Klausel

CREATE TABLE LOBTable (n NUMBER, c CLOB)lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x

PCTVERSION y/RETENTIONCACHE/NOCACHE/CACHE READS LOGGING/NOLOGGINGENABLE/DISABLE STORAGE IN ROWSTORAGE (MAXEXTENTS 5));

CACHE READS

viel lesen, selten schreiben

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Oracle 10g Release 2

STORAGE-Klausel

CREATE TABLE LOBTable (n NUMBER, c CLOB)lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x

PCTVERSION y/RETENTIONCACHE/NOCACHE/CACHE READS LOGGING/NOLOGGINGENABLE/DISABLE STORAGE IN ROWSTORAGE (MAXEXTENTS 5));

CACHE

viel lesen, viel schreiben

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Oracle 10g Release 2

STORAGE-Klausel

CREATE TABLE LOBTable (n NUMBER, c CLOB)lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x

PCTVERSION y/RETENTIONCACHE/NOCACHE/CACHE READS LOGGING/NOLOGGINGENABLE/DISABLE STORAGE IN ROWSTORAGE (MAXEXTENTS 5));

NOCACHE (DEFAULT)

selten lesen, nie schreiben

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Oracle 10g Release 2

STORAGE-Klausel

CREATE TABLE LOBTable (n NUMBER, c CLOB)lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x

PCTVERSION y/RETENTIONCACHE/NOCACHE/CACHE READS LOGGING/NOLOGGINGENABLE/DISABLE STORAGE IN ROWSTORAGE (MAXEXTENTS 5));

NOLOGGING

nicht möglich mit CACHE, praktisch für Bulk Load

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Oracle 10g Release 2

STORAGE-Klausel

CREATE TABLE LOBTable (n NUMBER, c CLOB)lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x

PCTVERSION y/RETENTIONCACHE/NOCACHE/CACHE READS LOGGING/NOLOGGINGENABLE/DISABLE STORAGE IN ROWSTORAGE (MAXEXTENTS 5));

STORAGE IN ROW

erzwingt die Daten innerhalb der Tabelle zu speichern (falls siehineinpassen)

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Fragen?

Vielen Dank für die Aufmerksamkeit.

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

Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

Quellenangabe

Oracle 10g Application Developer’s Guide - Large Objects, Juni2005Alexander Biliris, The EOS Large Object Manager, AT&T BellLaboratories, December 1992Stefan Dieker, Ralf Hartmut Güting, Efficient Handling of Tupleswith Embedded Large Objects, FernUniversität HagenPeter Eisentraut, PostgreSQL - Das Offizielle Handbuch,mitp-Verlag, 1. Auflage 2003Christina Böttger, Oberseminar - Moderne Datenbanken, HTWKLeipzig, November 2003

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