Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Oracle BLOB - Verhältnis zur "Orginalfile-Grösse"

Empfohlene Antworten

Veröffentlicht

Ich verwende eine Oracle 9i DB.

Ich weiss, dass man in ein BLOB max. 4 GB reinkriegt.

Was ich nicht weiss, ist, wie gross ein File auf der DB im BLOB im Verhältnis zur Orginalgrösse des Files wird.

Wer kann helfen?

BLOB = Binary Large Object

Er speichert im BLOB-Feld nur soviel wie die Datei hat, allerdings gibt es einen Overhead durch den LOB-Index der automatisch angelegt wird. Wieviel Platz der braucht kann man nicht sagen, das kommt sowohl auf die größe, als auch auf den Typ des BLOB an...

Letztendlich hilft nur testen und dann von 100/1000.. hochrechnen auf die zu erwartenden Datenmengen.

Btw: die Blobs landen in einer Tabelle, meinst du mit files das Oracle-Datenfile das zu dem Tablespace gehört wo die BLOBs rein sollen ?

Was ich nicht weiss, ist, wie gross ein File auf der DB im BLOB im Verhältnis zur Orginalgrösse des Files wird.

Ich verstehe das jetzt so, das du meinst die Datei wird in ein BLOB-Format umgewandelt. BLOB ist einfach nur die bezeichnung für einen Feldtyp, der eben eine große Menge an binären Daten aufnehmen kann (Binary Large OBject (s.o.)). Also im Normalfall ist das Verhältniss 1:1

EDIT:

Der Typ (binary) hat eher für das Programm welches die Daten schreibt bzw. liest eine entscheidende funktion, da binäre Daten eben andere Zeichen enthalten als Zeichenfelder oder Zahlen. Also die Art wie damit umgegangen werden muss ist eine andere.

(Ob es für die DB so einen großen unterschied macht welche Daten sie speichert weiss ich jetzt nich).

Quote:

Btw: die Blobs landen in einer Tabelle, meinst du mit files das Oracle-Datenfile das zu dem Tablespace gehört wo die BLOBs rein sollen ?

-> Nö

Mir geht es darum, dass ich weiss wie ich tablespace, extents usw. dimensionieren muss um eine sinnvolle Grössenabschätzung durchführen zu können.

Meine Frage war in etwa: Wieviel Platz braucht z.B. ein pdf-file mit 2MB auf der DB. Auch ca. 2MB, oder das zehnfache, oder die Hälfte?

Hängt vermutlich auch vom Dateityp ab oder?

Wie oben schon steht, prinzipell ungefähr 1:1, allerdings legt oracle automatisch einen LOB-Index an, und bei den weiß ich nicht weiviel Platz der braucht, da bleibt eben nix anderes überig als mal 1000 objekte einzufügen und dann nachzuschauen wieviel platz der index braucht, die Dateien ca 1:1.

Ich würde sagen das es bei einem BLOB tatsächlich 1:1 umgewandelt wird. D.h. wenn du ein PDF hast was 2MB groß ist so wird das Ding genauso in die Datenbank geschrieben. Wenn du dieses 2MB große File nun komprimierst auf 0,5MB und dann in die Datenbank schiebst werden dort 0,5MB gespeichert....

Warum sollte das vom Dateityp abhängen? Das würde ja bedeuten, das Oracle die Dateitypen kennen müsste und dann dementsprechend verfahren würde. Und was passiert wenn eine unbekannte Dateiendung kommt?

Oracle ist das doch total egal was für eine Datei das ist... Da kommen ein paar nullen und einsen und die werden gespeichert und jenachdem wieviel nullen und einsen kommen dementsprechend Speicher wird belegt....

Natürlich brauchst du dann noch ein kleines bischen mehr abhängig von deinen DB-Parametern, also z.B. wieviel Prozent eines Blockes lässt du für Update frei (pctfree) um das migrieren von Datensätzen zu vermeiden, oder deine Extentgröße usw...

Ich würde sagen das es bei einem BLOB tatsächlich 1:1 umgewandelt wird. D.h. wenn du ein PDF hast was 2MB groß ist so wird das Ding genauso in die Datenbank geschrieben. Wenn du dieses 2MB große File nun komprimierst auf 0,5MB und dann in die Datenbank schiebst werden dort 0,5MB gespeichert....

OK. Dann rechne ich mal so.

Warum sollte das vom Dateityp abhängen? Das würde ja bedeuten, das Oracle die Dateitypen kennen müsste und dann dementsprechend verfahren würde. Und was passiert wenn eine unbekannte Dateiendung kommt?

Oracle ist das doch total egal was für eine Datei das ist... Da kommen ein paar nullen und einsen und die werden gespeichert und jenachdem wieviel nullen und einsen kommen dementsprechend Speicher wird belegt....

Ja schon, aber die Datei wird doch erst im Programm irgendwie binär "gemacht". Oder macht das Oracle selbst? .... *denk*

Du hast Recht: Dateiformat müsst egal sein.

Natürlich brauchst du dann noch ein kleines bischen mehr abhängig von deinen DB-Parametern, also z.B. wieviel Prozent eines Blockes lässt du für Update frei (pctfree) um das migrieren von Datensätzen zu vermeiden, oder deine Extentgröße usw...

Das krieg ich gebacken... Danke. Aber grundlegend war mal die Info, wie gross das File als BLOB wird, um weitere Berechnungen zu machen, bzgl. pctfree usw.

Na dann Merci an alle, dat hat mir geholfen.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.