列に大量のBLOBデータを含むテーブルがあります。データをファイルシステムにダンプするユーティリティを書いています。ただし、ダンプする前に、テーブル全体にすべてのblobフィールドをエクスポートするために、ディスクに必要なスペースがあるかどうかを確認する必要があります。
テーブル内のすべてのblobフィールドのサイズを取得するための効率的なアプローチを提案してください。
MySQL関数を使用できますOCTET_LENGTH(your_column_name)
。詳細については、こちらをご覧ください。
select sum(length(blob_column)) as total_size
from your_table
select sum(length(blob_column_name)) from desired_tablename;
悲しいことに、これはせいぜい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にディスクに割り当てられた実際のサイズを取得する必要があります。