Die Münchner Feministin Hannelore Mabry legte 1987 im SPIEGEL Wert auf die Feststellung, sie habe eine Gruppe nichtfeministischer Frauen nicht als Arschlöcher, sondern als Arschlöcherinnen bezeichnet. (Wolf Schneider)
Alle Zitate
Smart und Simple Large Objects
Smart und Simple Large Objects
- Large Object ist der Oberbegriff für Smart oder Simple Large Objects
- Smart Large Object ist der Oberbegriff für Objekte vom Datentyp BLOB oder CLOB
- Simple Large Object ist der Oberbegriff für Objekte vom Datentyp BYTE oder TEXT.
- Blobspaces speichern Simple Large Objects
- Smart-Blobspaces speichern Smart Large Objects
- Datentyp BLOB
Blobs
speichern maximal 4*2^40 Bytes, das sind 4 Terabyte. Für Smart Large Objects gibt es die unten stehenden Operationen zum Einfügen, Auslesen und Kopieren:
- FILETOBLOB
- LOTOFILE
- LOCOPY
BLOBs werden geladen mit den folgenden Funktionen bzw. Dienstprogrammen:
- FILETOBLOB
- SQL-Befehl LOAD
- Dienstprogramme dbload und onload
- Hostvariable ifx_lo_t in ESQL/C-Programmen
Datentyp CLOB
Der Datentyp CLOB speichert nur Textdaten. Unter „Text“ fallen dabei auch HTML, XML, Postscript, SGML (und damit auch TeX).
Das unter „BLOB“ gesagte gilt ebenfalls für CLOB.
Datentyp BYTE
Anlegen einer Tabelle mit Smart Large Objects
Die folgende Tabelle enthält eine Spalte mit Smart Large Objects:
create table tab1 (nr serial,name char(20), bild BLOB );
Bei SBs läßt sich allerdings noch genauer festlegen, wo und wie der BLOB gespeichert wird, z.B. mit der Klausel „PUT“.
Die PUT-Klausel für SBs
Tabelle mit „Log“-Modus erstellen:
CREATE TABLE tab1 (nr SERIAL,name CHAR(20), bild BLOB ) PUT bild IN (sb1) (LOG)
In diesem Falle wird der BLOB “bild” in den SB-Space “sb1” gespeichert und Logging ist eingeschaltet.
Tabelle umschalten auf Nolog
alter table tab1 put bild in (sb1) (no log) -> beachte das Blank zwischen “no” und “log”
Definition der Extent size
CREATE TABLE tab1 (nr SERIAL,name CHAR(20), bild BLOB ) PUT bild IN (sb1) (EXTENT SIZE 20)
Die Extent Size wird in KB angegeben und auf ein Vielfaches der SBspace-Pagesize aufgerundet. Das bedeutet: Jede Spalte einer Tabelle, die den Datentyp BLOB oder CLOB hat, hat innerhalb des Smart Blobspaces ihre eigene Pagesize!!! Zumindest könnte sie das haben. Allerdings wird die Extent Size bei fehlender Angabe vom Server selbst errechnet. Will man beispielsweise ein Smart Large Object der größe 120 KB speichern, so errechnet der Server den größtmöglichen Extent, den er im entsprechenden Chunk freimachen kann (also im optimalen Falle 120 KB).
Empfehlung: Nur in Ausnahmefällen explizite Angabe verwenden.
Erstellen eines SBspaces
Smart Blobspace Pagesize ist nicht konfigurierbar
Im Gegensatz zur BLOBPAGE ist die Größe der Page in einem Smart Blobspace identisch mit der Server-Page Size und kann auch nachträglich nicht mehr geändert werden.
Parameter in der ONCONFIG
SBSPACENAME
Dies ist der Default-Dbspace für Smart Large Objects, wenn man beim CREATE TABLE keine PUT Anweisung mit angibt.
Mit onspaces Erstellen eines SBspaces:
In der ONCONFIG ist der Default-SBspace gespeichert:
SBSPACENAME xs300 # Default smartblob space name - this is where blobs # go if no sbspace is specified when the smartblob is # created. It is also used by some datablades as # the location to put their smartblobs. SYSSBSPACENAME xs300 # Default smartblob space for use by the Informix # Server. This is used primarily for Informix Server # system statistics collection.
Hierarchie der Speicher-Eigenschaften
Alle Eigenschaften, die in der PUT-Klausel des CREATE TABLE Statements vorkommen, können beim Erstellen des Smart Blobspaces global vorgegeben werden (oder stehen sogar in der ONCONFIG). Die Wertigkeit der Eigenschaften geht in der üblichen Weise aus der folgenden Tablle hervor:
Database server storage characteristics (system defaults)
Sbspace storage characteristics
(assigned when the sbspace is created with the onspaces utility or
when you change the sbspace with onspaces -ch)
Column-level storage characteristics
(assigned when the table is created with the CREATE TABLE
statement or when you change the table with the ALTER TABLE statement)
User-specified storage characteristics
(assigned when the smart large object is created with a DataBlade API
mi_lo_create function or ESQL/C ifx_lo_create function)
Einfügen und Lesen von Large Object Spalten
Speichern eines BLOBs
insert into tab1 values (0, "Schiff", FILETOBLOB ('/home/f995440/k00563.jpg', 'server'));Selektieren eines Smartblobs:
select nr, name, LOTOFILE (bild, '/home/f995440/' , 'client') from tab1
Der ausgelesene Smartblob wird im Verzeichnis /home/f995440 gespeichert:
nr 1 name Schiff (expression) /home/f995440/.254925627 ................
Gibt man noch einen Dateinamen an, so wird dieser vor den Punkt gestellt:
select nr, name, lotofile (bild, '/home/f995440/bild' , 'client')
from tab1
ergibt folgenden Output:
nr 1 name Schiff (expression) /home/f995440/bild.0000000041dd314b
Die Anzahl der angehängten Zeichen an dem Dateinamen kann man begrenzen durch Angabe von Meazeichen.
Z.B. ergibt
select nr, name, lotofile (bild, '/home/f995440/bild??' , 'client')
from tab1
where nr = 1
nr 1
name Schiff
(expression) /home/f995440/bild4b
Es werden also genau 2 Zeichen angehängt.
Beispielscripte
Script zur statistischen Auswertung der Blob-Zugriffe
************************************************************************ IDS: Check Blob Usage Easily on HP and Linux ************************************************************************ This package allows for easier control of BLOB usage and will ease the datablade installation process. It is currently available on Linux Red Hat Enterprise 3.0 and HP-UX 11i. (NOTE: If you would like this package on Solaris, AIX or WIN XP, please contact your Premium Support Manager.) The free datablade module SBLOB Info 1.5 was created by Jean T. Anderson and described in the following article : http://www-128.ibm.com/developerworks/db2/zones/informix/library/techart... This package provides shell scripts to automatically generate reports for all BLOB columns available in one or more databases and install the module. Two binaries are included: Red Hat Enterprise AS3, and HP-UX 11i. Please note the following limitations : - Binaries were only built and tested on Linux Kernel 2.4.21 & HP-UX 11i. - This package has been tested with IDS 9.40 and IDS 10.00; it should also work with IDS 9.30. - CLOB columns size can not be computed. How to Install: 1) Login to informix account & cd $INFORMIXDIR/extend 2) Uncompress the package -> Package-SBINFO_v1-US.tar 3) Run installation script -> ./install_SBLOB.sh DB1 [DB2 .. DB3] How to generate reports : If you don't have one database with BLOB column : Run test script -> ./test_SBLOB.sh If you have one database with BLOB column : Run report script -> ./report_SBLOB.sh Example of output from the test script ./test_SBLOB.sh: This script does the following: - Create one database with one SBSPACE - Register SBLOB module - Generate reports about BLOB usage for the testsblobinfo database








Kommentar hinzufügen