Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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