in DB2

2012-03-29 4 views
3

Dateitabelle enthält - file_id und File_data (BLOB)in DB2

wie kann ich wissen, um die Größe der Binärdatei in File_data Spalte gespeichert. length Funktion gibt die Länge der Datei, aber wie Sie die Größe in KB kennen.

+1

teilen Sie die resultierende Länge durch 1024? –

+0

@Peter bedeutet, Länge gibt die Größe in Bytes an. Ist das die tatsächliche Größe? – nectar

Antwort

-2

BLOB Länge ist nicht ganz dasselbe wie Größe.

Als erstes müssen Sie NEIN auf alle diese Fragen zu beantworten, denn es ist die Dateigröße zu sein:

  1. Ist die BLOB-Spalte als COMPACT erklärt?
  2. Sind die Tabellendaten komprimiert? (Standardmäßig deaktiviert)

Beachten Sie auch den LOB-Locator-Overhead.

Grundsätzlich ist die Antwort, dass Sie nicht wirklich 100% BLOB/tatsächliche Dateigröße aus der Spalte über die Längenmethode ermitteln können.

+0

ich verstehe nicht, warum dies abgelehnt wird? Ist die Kompaktheit der Säule nicht zu berücksichtigen? –

+1

Ich frage die Leute, die es gelesen haben nicht verstanden, was ich mit meiner ursprünglichen Antwort gemeint habe. Mein Punkt war, dass Sie die Länge der BLOB-Spalte nur verwenden können, wenn die Tabelle nicht komprimiert ist und die Spalte nicht COMPACT ist. – Reigo

+1

'COMPACT'ness einer LOB-Spalte hat nichts mit der Länge des darin gespeicherten Wertes zu tun. – mustaccio

9

Dies gibt eine Zahl in Bytes, teilen Sie es durch 1024, um die Größe in KB zu erhalten.

Select sum(BIGINT(length(blob_column))) 
from table;