47
Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf Datenbanken II Speicherung 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

Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 2: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 3: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 4: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 5: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 6: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 7: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 8: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 9: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 10: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 11: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 12: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 13: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 14: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 15: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 16: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 17: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 18: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 19: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 20: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 21: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 22: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 23: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 24: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 25: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 26: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 27: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 28: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 29: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 30: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 31: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 32: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 33: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 34: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 35: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 36: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 37: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 38: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 39: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 40: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 41: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 42: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 43: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 44: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 45: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 46: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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

Page 47: Datenbanken II Speicherung und Verarbeitung großer Objekte ...kudrass/Lehrmaterial/DB2-VL/DB2-08/04B-Vortrag.pdf · Hochschule für Technik, Wirtschaft und Kultur Leipzig Jörg Kohlsdorf

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