web-dev-qa-db-ja.com

テーブル内のBLOB列の合計データサイズの計算

列に大量のBLOBデータがあるテーブルがあります。データをファイルシステムにダンプするユーティリティを作成しています。ただし、ダンプする前に、テーブル全体のすべてのblobフィールドをエクスポートするために必要なスペースがディスクにあるかどうかを確認する必要があります。

テーブル内のすべてのBLOBフィールドのサイズを取得するための効率的なアプローチを提案してください。

30
jatinpreet

MySQL関数OCTET_LENGTH(your_column_name)を使用できます。詳細については、 here を参照してください。

39
bodi0
select sum(length(blob_column)) as total_size 
from your_table
24
juergen d
select sum(length(blob_column_name)) from desired_tablename;
4
Olofu Mark

悲しいことに、これはせいぜいDB固有です。

OracleでBLOBを含むテーブルの合計サイズを取得するには、次を使用します。 https://blog.voina.org/?p=374

悲しいことに、これはDB2で機能しません。私はまだ代替を見つける必要があります。

シンプルな

select sum(length(blob_column)) as total_size 
from your_table

blob列に格納されているblobへの参照に基づいてblobサイズを正しく推定しないため、正しいクエリではありません。 blobリポジトリからblobの実際の割り当てサイズをディスク上で取得する必要があります。

2
voinageo