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



Ähnliche Dokumente
Datenbanken II. Speicherung und Verarbeitung großer Objekte (Large Objects) Jörg Kohlsdorf 05IND-T

SQL (Structured Query Language) Schemata Datentypen

OPERATIONEN AUF EINER DATENBANK

Objektrelationale Datenbanken

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

7. Übung - Datenbanken

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

MS SQL Server: Index Management. Stephan Arenswald 10. Juli 2008

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht "Adressen" in eigene Solution

Naxtron GmbH Schlosstalstrasse Winterthur. Subject. New Features Oracle 9i Architecture

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Datenbanken auf Sybase SQL-Anywhere

Objektrelationale und erweiterbare Datenbanksysteme

LDAP Konfiguration nach einem Update auf Version 6.3 Version 1.2 Stand: 23. Januar 2012 Copyright MATESO GmbH

desk.modul : WaWi- Export

DB2 Codepage Umstellung

Preisvergleich ProfitBricks - Amazon Web Services M3 Instanz

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Dokumentation QuickHMI-Schnittstelle für Oracle Datenbanken

Oracle: Abstrakte Datentypen:

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

Oracle APEX Installer

Installationshinweise für Serverbetrieb von Medio- Programmen

SharePoint Demonstration

Internet Explorer Version 6

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

4D Server v12 64-bit Version BETA VERSION

3. Stored Procedures und PL/SQL

Datenmanagement in Android-Apps. 16. Mai 2013

Auto-Provisionierung tiptel 31x0 mit Yeastar MyPBX

Safexpert Oracle Datenbank Konnektor. Stand: IBF-Automatisierungs-und Sicherheitstechnik GmbH A-6682 Vils Bahnhofstraße 8

SEMINAR Modifikation für die Nutzung des Community Builders

Professionelle Seminare im Bereich MS-Office

Tipps und Tricks zu Netop Vision und Vision Pro

So funktioniert die NetWorker 7.5 Eigenschaft zum Sichern umbenannter Verzeichnisse ( Backup renamed Directories )

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Prozessarchitektur einer Oracle-Instanz

Views in SQL. 2 Anlegen und Verwenden von Views 2

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Ein Ausflug zu ACCESS

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Eigene Dokumente, Fotos, Bilder etc. sichern

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Unterabfragen (Subqueries)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Janitos Maklerportal. Mögliche Probleme und Fragen:

Tritt beim Aufruf ein Fehler aus, so wird eine MessageBox mit dem Fehlercode und der Kommandozeile angezeigt.

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

Tag 4 Inhaltsverzeichnis

Outlook-Daten komplett sichern

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Informatik 12 Datenbanken SQL-Einführung

Schlüssel bei temporalen Daten im relationalen Modell

Typo 3 installieren. Schritt 1: Download von Typo3

1 Application Compatibility Toolkit (ACT) 5.6

Kurzeinführung Excel2App. Version 1.0.0

Workshop: Eigenes Image ohne VMware-Programme erstellen

Der SD-Kartenslot befindet sich an der rechten Gehäuseseite unterhalb der rechteckigen hellgrauen Gummiabdeckung.

KURZANLEITUNG CLOUD OBJECT STORAGE

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

IntelliRestore Seedload und Notfallwiederherstellung

Was ist das Tekla Warehouse

Erstellen einer digitalen Signatur für Adobe-Formulare

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Installationsanleitung Maschinenkonfiguration und PPs

Large Objects Sebastian Kohl IN05TI

Perceptive Document Composition

Dokumentation für das Web-basierte Abkürzungsverzeichnis (Oracle mod_plsql / Apache)

Allgemeines zu Datenbanken

OP-LOG

CVR Seniorentreff vom 04. und Serienbriefe/Seriendruck. Serienbriefe / Seriendruck

Vorgehensweise bei Lastschriftverfahren

SUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER

Administration eines Redakteurs des Veranstaltungskalenders mit dem Content Management System TYPO3

Arbeiten mit einem lokalen PostgreSQL-Server

Lokale Installation von DotNetNuke 4 ohne IIS

Software Release Notes

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

3 Windows 7-Installation

mit SD-Karte SD-Karte Inhalt

How to do? Projekte - Zeiterfassung

Inhalt... 1 Einleitung... 1 Systemanforderungen... 1 Software Download... 1 Prüfdokumentation... 4 Probleme... 5 Hintergrund... 5

Umstieg auf Microsoft Exchange in der Fakultät 02

Tag 4 Inhaltsverzeichnis

MySQL Installation. AnPr

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Speichern. Speichern unter

Kapitel 8: Physischer Datenbankentwurf

Teamschool Installation/ Konvertierungsanleitung

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Übung - Datensicherung und Wiederherstellung in Windows Vista

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Transkript:

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 (Large Objects [LOBs]) 1

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 2 Interne LOBs Externe LOBs Beispiel Tuningansätze Tuningansätze - STORAGE-Klausel 6 Fragen? 7 Quellenangabe Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 2

Was sind Large Objects (LOBs)? LOBs sind eine Klasse von Datentypen die dafür konstruiert sind, große Datenmengen aufzunehmen Ein LOB kann je nach Konfiguration des Datenbanksystems zwischen 1 und 128 TB an Daten aufnehmen Daten in LOBs zu speichern ermöglicht effiziente Zugriffe und Handhabung dieser Daten innerhalb der Applikationen, die diese nutzen LOBs unterliegen ebenfalls dem Transaktionsprinzip (ACID) - sie können mit einem ROLLBACK rückgängig gemacht werden Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 3

Was sind Large Objects (LOBs)? LOBs sind eine Klasse von Datentypen die dafür konstruiert sind, große Datenmengen aufzunehmen Ein LOB kann je nach Konfiguration des Datenbanksystems zwischen 1 und 128 TB an Daten aufnehmen Daten in LOBs zu speichern ermöglicht effiziente Zugriffe und Handhabung dieser Daten innerhalb der Applikationen, die diese nutzen LOBs unterliegen ebenfalls dem Transaktionsprinzip (ACID) - sie können mit einem ROLLBACK rückgängig gemacht werden Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 3

Was sind Large Objects (LOBs)? LOBs sind eine Klasse von Datentypen die dafür konstruiert sind, große Datenmengen aufzunehmen Ein LOB kann je nach Konfiguration des Datenbanksystems zwischen 1 und 128 TB an Daten aufnehmen Daten in LOBs zu speichern ermöglicht effiziente Zugriffe und Handhabung dieser Daten innerhalb der Applikationen, die diese nutzen LOBs unterliegen ebenfalls dem Transaktionsprinzip (ACID) - sie können mit einem ROLLBACK rückgängig gemacht werden Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 3

Was sind Large Objects (LOBs)? LOBs sind eine Klasse von Datentypen die dafür konstruiert sind, große Datenmengen aufzunehmen Ein LOB kann je nach Konfiguration des Datenbanksystems zwischen 1 und 128 TB an Daten aufnehmen Daten in LOBs zu speichern ermöglicht effiziente Zugriffe und Handhabung dieser Daten innerhalb der Applikationen, die diese nutzen LOBs unterliegen ebenfalls dem Transaktionsprinzip (ACID) - sie können mit einem ROLLBACK rückgängig gemacht werden Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 3

Motivation (Warum Daten nicht in LONGs speichern?) LOB Kapazität Kapazität der LONG und LONG RAW Datentypen sind in Oracle auf 2GB limitiert Anzahl LOB-Spalten pro Tabelle Eine Tabelle kann mehrere LOB-Spalten haben, aber nur eine LONGoder LONG RAW-Spalte (Oracle) wahlfreier Zugriff LOBs unterstützen wahlfreien Zugriff auf die Daten LONGs unterstützen nur sequentiellen Zugriff Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 4

Motivation (Warum Daten nicht in LONGs speichern?) LOB Kapazität Kapazität der LONG und LONG RAW Datentypen sind in Oracle auf 2GB limitiert Anzahl LOB-Spalten pro Tabelle Eine Tabelle kann mehrere LOB-Spalten haben, aber nur eine LONGoder LONG RAW-Spalte (Oracle) wahlfreier Zugriff LOBs unterstützen wahlfreien Zugriff auf die Daten LONGs unterstützen nur sequentiellen Zugriff Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 4

Motivation (Warum Daten nicht in LONGs speichern?) LOB Kapazität Kapazität der LONG und LONG RAW Datentypen sind in Oracle auf 2GB limitiert Anzahl LOB-Spalten pro Tabelle Eine Tabelle kann mehrere LOB-Spalten haben, aber nur eine LONGoder LONG RAW-Spalte (Oracle) wahlfreier Zugriff LOBs unterstützen wahlfreien Zugriff auf die Daten LONGs unterstützen nur sequentiellen Zugriff Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 4

SQL Standard Der SQL-99 (SQL3) Standard definiert für LOBs: Datentypen: BLOB, CLOB Deklaration: <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

SQL Standard Der SQL-99 (SQL3) Standard definiert für LOBs: Datentypen: BLOB, CLOB Deklaration: <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

SQL Standard Der SQL-99 (SQL3) Standard definiert für LOBs: Datentypen: BLOB, CLOB Deklaration: <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

Einschränkungen bei Verwendung von LOBs dürfen nicht Teil eines Primärschlüssels sein dürfen nicht Teil eines Index sein dü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

Einschränkungen bei Verwendung von LOBs dürfen nicht Teil eines Primärschlüssels sein dürfen nicht Teil eines Index sein dü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

Einschränkungen bei Verwendung von LOBs dürfen nicht Teil eines Primärschlüssels sein dürfen nicht Teil eines Index sein dü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

Oracle 10g Release 2 In Oracle 10g werden 2 LOB-Typen unterschieden: interne LOB-Typen Standardtypen aus SQL-99: CLOB, BLOB NCLOB (National Character LOB) externe LOB-Typen BFILE (Binary File) Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 7

Oracle 10g Release 2 In Oracle 10g werden 2 LOB-Typen unterschieden: interne LOB-Typen Standardtypen aus SQL-99: CLOB, BLOB NCLOB (National Character LOB) externe LOB-Typen BFILE (Binary File) Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 7

Interne LOBs Transaktionskonzept - ACID (ROLLBACK möglich) Werte werden im Tablespace der DB gespeichert Länge < 3964 Bytes, so kann Datensatz in Tabelle gespeichert werden Länge > 3964 Bytes, wird Datensatz außerhalb der Tabelle gespeichert, Datensatzes enthält Lokator, der auf physischen Speicherort verweist Für Verarbeitung von LOB-Werten, die nicht in der DB gespeichert werden sollen, bietet Oracle die Datentypen TEMPORARY BLOB / CLOB an Initialisierung von LOB-Attributen erfolgt mit EMPTY_BLOB() bzw. EMPTY_CLOB() - dies erzeugt einen leeren Lokator (auch nötig, wenn LOB NULL enthält) Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 8

Interne LOBs Transaktionskonzept - ACID (ROLLBACK möglich) Werte werden im Tablespace der DB gespeichert Länge < 3964 Bytes, so kann Datensatz in Tabelle gespeichert werden Länge > 3964 Bytes, wird Datensatz außerhalb der Tabelle gespeichert, Datensatzes enthält Lokator, der auf physischen Speicherort verweist Für Verarbeitung von LOB-Werten, die nicht in der DB gespeichert werden sollen, bietet Oracle die Datentypen TEMPORARY BLOB / CLOB an Initialisierung von LOB-Attributen erfolgt mit EMPTY_BLOB() bzw. EMPTY_CLOB() - dies erzeugt einen leeren Lokator (auch nötig, wenn LOB NULL enthält) Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 8

Interne LOBs Transaktionskonzept - ACID (ROLLBACK möglich) Werte werden im Tablespace der DB gespeichert Länge < 3964 Bytes, so kann Datensatz in Tabelle gespeichert werden Länge > 3964 Bytes, wird Datensatz außerhalb der Tabelle gespeichert, Datensatzes enthält Lokator, der auf physischen Speicherort verweist Für Verarbeitung von LOB-Werten, die nicht in der DB gespeichert werden sollen, bietet Oracle die Datentypen TEMPORARY BLOB / CLOB an Initialisierung von LOB-Attributen erfolgt mit EMPTY_BLOB() bzw. EMPTY_CLOB() - dies erzeugt einen leeren Lokator (auch nötig, wenn LOB NULL enthält) Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 8

Interne LOBs Transaktionskonzept - ACID (ROLLBACK möglich) Werte werden im Tablespace der DB gespeichert Länge < 3964 Bytes, so kann Datensatz in Tabelle gespeichert werden Länge > 3964 Bytes, wird Datensatz außerhalb der Tabelle gespeichert, Datensatzes enthält Lokator, der auf physischen Speicherort verweist Für Verarbeitung von LOB-Werten, die nicht in der DB gespeichert werden sollen, bietet Oracle die Datentypen TEMPORARY BLOB / CLOB an Initialisierung von LOB-Attributen erfolgt mit EMPTY_BLOB() bzw. EMPTY_CLOB() - dies erzeugt einen leeren Lokator (auch nötig, wenn LOB NULL enthält) Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 8

Interne LOBs Transaktionskonzept - ACID (ROLLBACK möglich) Werte werden im Tablespace der DB gespeichert Länge < 3964 Bytes, so kann Datensatz in Tabelle gespeichert werden Länge > 3964 Bytes, wird Datensatz außerhalb der Tabelle gespeichert, Datensatzes enthält Lokator, der auf physischen Speicherort verweist Für Verarbeitung von LOB-Werten, die nicht in der DB gespeichert werden sollen, bietet Oracle die Datentypen TEMPORARY BLOB / CLOB an Initialisierung von LOB-Attributen erfolgt mit EMPTY_BLOB() bzw. EMPTY_CLOB() - dies erzeugt einen leeren Lokator (auch nötig, wenn LOB NULL enthält) Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 8

Interne LOBs Transaktionskonzept - ACID (ROLLBACK möglich) Werte werden im Tablespace der DB gespeichert Länge < 3964 Bytes, so kann Datensatz in Tabelle gespeichert werden Länge > 3964 Bytes, wird Datensatz außerhalb der Tabelle gespeichert, Datensatzes enthält Lokator, der auf physischen Speicherort verweist Für Verarbeitung von LOB-Werten, die nicht in der DB gespeichert werden sollen, bietet Oracle die Datentypen TEMPORARY BLOB / CLOB an Initialisierung von LOB-Attributen erfolgt mit EMPTY_BLOB() bzw. EMPTY_CLOB() - dies erzeugt einen leeren Lokator (auch nötig, wenn LOB NULL enthält) Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 8

Externe LOBs BFILE-LOBs sind vom Transaktionsmechanismus ausgenommen Lokator verweist auf Betriebssystemdatei ausserhalb der DB in der DB muss ein virtuelles Verzeichnis angelegt werden, welches auf Betriebssystemverzeichnis zeigt, in dem die Dateien liegen dieses Verzeichnis muss für die DB lesbar sein BFILE-LOBs sind READ ONLY! Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 9

Externe LOBs BFILE-LOBs sind vom Transaktionsmechanismus ausgenommen Lokator verweist auf Betriebssystemdatei ausserhalb der DB in der DB muss ein virtuelles Verzeichnis angelegt werden, welches auf Betriebssystemverzeichnis zeigt, in dem die Dateien liegen dieses Verzeichnis muss für die DB lesbar sein BFILE-LOBs sind READ ONLY! Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 9

Externe LOBs BFILE-LOBs sind vom Transaktionsmechanismus ausgenommen Lokator verweist auf Betriebssystemdatei ausserhalb der DB in der DB muss ein virtuelles Verzeichnis angelegt werden, welches auf Betriebssystemverzeichnis zeigt, in dem die Dateien liegen dieses Verzeichnis muss für die DB lesbar sein BFILE-LOBs sind READ ONLY! Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 9

Externe LOBs BFILE-LOBs sind vom Transaktionsmechanismus ausgenommen Lokator verweist auf Betriebssystemdatei ausserhalb der DB in der DB muss ein virtuelles Verzeichnis angelegt werden, welches auf Betriebssystemverzeichnis zeigt, in dem die Dateien liegen dieses Verzeichnis muss für die DB lesbar sein BFILE-LOBs sind READ ONLY! Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 9

Externe LOBs BFILE-LOBs sind vom Transaktionsmechanismus ausgenommen Lokator verweist auf Betriebssystemdatei ausserhalb der DB in der DB muss ein virtuelles Verzeichnis angelegt werden, welches auf Betriebssystemverzeichnis zeigt, in dem die Dateien liegen dieses Verzeichnis muss für die DB lesbar sein BFILE-LOBs sind READ ONLY! Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 9

Externe LOBs BFILE-LOBs sind vom Transaktionsmechanismus ausgenommen Lokator verweist auf Betriebssystemdatei ausserhalb der DB in der DB muss ein virtuelles Verzeichnis angelegt werden, welches auf Betriebssystemverzeichnis zeigt, in dem die Dateien liegen dieses Verzeichnis muss für die DB lesbar sein BFILE-LOBs sind READ ONLY! Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 9

Beispiel Definition einer Tabelle mit LOB-Datentypen: CREATE TABLE LOBTable ( key NUMBER, image BLOB DEFAULT EMPTY_BLOB( ), imagefile BFILE, t e x t CLOB ) ; Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 10

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

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

Tuningansätze Tuningansätze Modifikation der STORAGE-Klausel sofortiges Freigeben nicht mehr benötigter temporärer LOBs, diese bleiben sonst bis zur Terminierung der Datenbankverbindung im Speicher LOB in anderen Tablespace als den, der den LOB enthält speichern - bei mehreren LOBs in einer Tabelle evt. mehrere Tablespaces 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

Tuningansätze Tuningansätze Modifikation der STORAGE-Klausel sofortiges Freigeben nicht mehr benötigter temporärer LOBs, diese bleiben sonst bis zur Terminierung der Datenbankverbindung im Speicher LOB in anderen Tablespace als den, der den LOB enthält speichern - bei mehreren LOBs in einer Tabelle evt. mehrere Tablespaces 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

Tuningansätze Tuningansätze Modifikation der STORAGE-Klausel sofortiges Freigeben nicht mehr benötigter temporärer LOBs, diese bleiben sonst bis zur Terminierung der Datenbankverbindung im Speicher LOB in anderen Tablespace als den, der den LOB enthält speichern - bei mehreren LOBs in einer Tabelle evt. mehrere Tablespaces 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

Tuningansätze Tuningansätze Modifikation der STORAGE-Klausel sofortiges Freigeben nicht mehr benötigter temporärer LOBs, diese bleiben sonst bis zur Terminierung der Datenbankverbindung im Speicher LOB in anderen Tablespace als den, der den LOB enthält speichern - bei mehreren LOBs in einer Tabelle evt. mehrere Tablespaces 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

Oracle 10g Release 2 STORAGE-Klausel CREATE TABLE LOBTable (n NUMBER, c CLOB) lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x PCTVERSION y/retention CACHE/NOCACHE/CACHE READS LOGGING/NOLOGGING ENABLE/DISABLE STORAGE IN ROW STORAGE (MAXEXTENTS 5) ); CHUNK Anzahl Oracle Blocks (max: 32K) - Zugriff in großen Chunks effizienter, verschwendet allerdings Speicherplatz bei kleineren Daten Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 13

Oracle 10g Release 2 STORAGE-Klausel CREATE TABLE LOBTable (n NUMBER, c CLOB) lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x PCTVERSION y/retention CACHE/NOCACHE/CACHE READS LOGGING/NOLOGGING ENABLE/DISABLE STORAGE IN ROW STORAGE (MAXEXTENTS 5) ); CHUNK Anzahl Oracle Blocks (max: 32K) - Zugriff in großen Chunks effizienter, verschwendet allerdings Speicherplatz bei kleineren Daten Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 13

Oracle 10g Release 2 STORAGE-Klausel CREATE TABLE LOBTable (n NUMBER, c CLOB) lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x PCTVERSION y/retention CACHE/NOCACHE/CACHE READS LOGGING/NOLOGGING ENABLE/DISABLE STORAGE IN ROW STORAGE (MAXEXTENTS 5) ); PCTVERSION (Default: 10) - Prozentsatz vom LOB-Speicherplatz der für alte Versionen benutzt werden kann, bei seltenen Updates kann Wert verkleinert werden Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 14

Oracle 10g Release 2 STORAGE-Klausel CREATE TABLE LOBTable (n NUMBER, c CLOB) lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x PCTVERSION y/retention CACHE/NOCACHE/CACHE READS LOGGING/NOLOGGING ENABLE/DISABLE STORAGE IN ROW STORAGE (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

Oracle 10g Release 2 STORAGE-Klausel CREATE TABLE LOBTable (n NUMBER, c CLOB) lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x PCTVERSION y/retention CACHE/NOCACHE/CACHE READS LOGGING/NOLOGGING ENABLE/DISABLE STORAGE IN ROW STORAGE (MAXEXTENTS 5) ); CACHE READS viel lesen, selten schreiben Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 16

Oracle 10g Release 2 STORAGE-Klausel CREATE TABLE LOBTable (n NUMBER, c CLOB) lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x PCTVERSION y/retention CACHE/NOCACHE/CACHE READS LOGGING/NOLOGGING ENABLE/DISABLE STORAGE IN ROW STORAGE (MAXEXTENTS 5) ); CACHE viel lesen, viel schreiben Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 17

Oracle 10g Release 2 STORAGE-Klausel CREATE TABLE LOBTable (n NUMBER, c CLOB) lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x PCTVERSION y/retention CACHE/NOCACHE/CACHE READS LOGGING/NOLOGGING ENABLE/DISABLE STORAGE IN ROW STORAGE (MAXEXTENTS 5) ); NOCACHE (DEFAULT) selten lesen, nie schreiben Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 18

Oracle 10g Release 2 STORAGE-Klausel CREATE TABLE LOBTable (n NUMBER, c CLOB) lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x PCTVERSION y/retention CACHE/NOCACHE/CACHE READS LOGGING/NOLOGGING ENABLE/DISABLE STORAGE IN ROW STORAGE (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

Oracle 10g Release 2 STORAGE-Klausel CREATE TABLE LOBTable (n NUMBER, c CLOB) lob (c) STORE AS SEGNAME (TABLESPACE lobts1 CHUNK x PCTVERSION y/retention CACHE/NOCACHE/CACHE READS LOGGING/NOLOGGING ENABLE/DISABLE STORAGE IN ROW STORAGE (MAXEXTENTS 5) ); STORAGE IN ROW erzwingt die Daten innerhalb der Tabelle zu speichern (falls sie hineinpassen) Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 20

Fragen? Vielen Dank für die Aufmerksamkeit. Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 21

Quellenangabe Oracle 10g Application Developer s Guide - Large Objects, Juni 2005 Alexander Biliris, The EOS Large Object Manager, AT&T Bell Laboratories, December 1992 Stefan Dieker, Ralf Hartmut Güting, Efficient Handling of Tuples with Embedded Large Objects, FernUniversität Hagen Peter Eisentraut, PostgreSQL - Das Offizielle Handbuch, mitp-verlag, 1. Auflage 2003 Christina Böttger, Oberseminar - Moderne Datenbanken, HTWK Leipzig, November 2003 Datenbanken II,Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) 22