171 DBMS_SPACE

DBMS_SPACEパッケージによって、セグメントの成長と領域要件を分析できます。

この章のトピックは、次のとおりです:

171.1 DBMS_SPACEのセキュリティ・モデル

このパッケージの実行には、SYS権限が必要です。実行権限は、PUBLICに付与されます。このパッケージのサブプログラムは、コール元のセキュリティ下で実行されます。ユーザーには、オブジェクトに関するANALYZE権限が必要です。

171.2 DBMS_SPACEのデータ構造

DBMS_SPACEパッケージでは、オブジェクト・タイプ、レコード・タイプおよびタイプを定義します。

レコード・タイプ

ASA_RECO_ROWレコード・タイプ

171.2.1 DBMS_SPACE CREATE_TABLE_COST_COLINFOオブジェクト・タイプ

このタイプは、表の列のデータ・タイプとサイズを記述します。

構文

TYPE create_table_cost_colinfo IS OBJECT( 
    col_type    VARCHAR(200),
    col_size    NUMBER)

属性

表171-1 CREATE_TABLE_COST_COLINFOオブジェクト・タイプ

属性 説明

col_type

列タイプ。

col_size

列サイズ。

171.2.2 DBMS_SPACE ASA_RECO_ROWレコード・タイプ

このタイプには、ASA_RECOMMENDATIONSファンクションによって戻される個々の列のタイプが含まれています。

構文

TYPE asa_reco_row IS RECORD (
   tablespace_name       VARCHAR2(30),
   segment_owner         VARCHAR2(30),
   segment_name          VARCHAR2(30),   segment_type          VARCHAR2(18),
   partition_name        VARCHAR2(30),
   allocated_space       NUMBER,
   used_space            NUMBER,
   reclaimable_space     NUMBER,
   chain_rowexcess       NUMBER,
   recommendations       VARCHAR2(1000),
   c1                    VARCHAR2(1000),
   c2                    VARCHAR2(1000),
   c3                    VARCHAR2(1000),
   task_id               NUMBER,
   mesg_id               NUMBER);

属性

表171-2 ASA_RECO_ROWの属性

フィールド 説明

tablespace_name

オブジェクトを含む表領域の名前

segment_owner

スキーマの名前を指定します。

segment_name

オブジェクト名

segment_type

'TABLE'、'INDEXなどのセグメントのタイプ。

partition_name

パーティション名

allocated_space

セグメントに割り当てる領域。

used_space

実際にセグメントに使用される領域。

reclaimable_space

セグメント内の再利用可能な空き領域。

chain_rowexcess

排除可能な余分な連鎖行のパーセント。

recommendations

このセグメントに対するリコメンデーションまたは検索結果。

c1

リコメンデーションに関連付けられたコマンド。

c2

リコメンデーションに関連付けられたコマンド。

c3

リコメンデーションに関連付けられたコマンド。

task_id

このセグメントを処理するアドバイザ・タスク。

mesg_id

リコメンデーションに対応するメッセージID。

171.2.3 DBMS_SPACE ASA_RECO_ROW_TB表タイプ

タイプasa_reco_row_tbは、asa_reco_rowの表です。

構文

TYPE asa_reco_row_tb IS TABLE OF asa_reco_row;

171.3 DBMS_SPACEサブプログラムの要約

この表は、DBMS_SPACEサブプログラムを示し、簡単に説明しています。

表171-3 DBMS_SPACEパッケージのサブプログラム

サブプログラム 説明

ASA_RECOMMENDATIONSファンクション

システムによって自動的に起動されているか、またはユーザーが手動で起動しているセグメント・アドバイザのリコメンデーションまたは検索結果を戻します。

CREATE_INDEX_COSTプロシージャ

既存の表に索引を作成するコストを判断します。

CREATE_TABLE_COSTプロシージャ

様々な属性を備えた表のサイズを判断します。

FREE_BLOCKSプロシージャ

オブジェクト(表、索引またはクラスタ)にある空きブロックに関する情報を戻します。

ISDATAFILEDROPPABLE_NAMEプロシージャ

データファイルが削除可能かどうかを確認します。

OBJECT_DEPENDENT_SEGMENTSファンクション

オブジェクトに関連付けられたセグメントのリストを戻します。

OBJECT_GROWTH_TRENDファンクション

特定の時点におけるオブジェクトの領域使用を、この表ファンクションの各行に示します。

SPACE_USAGEプロシージャ

自動セグメント領域管理セグメントでの空きブロックの情報を戻します。

UNUSED_SPACEプロシージャ

オブジェクト(表、索引またはクラスタ)にある未使用領域に関する情報を戻します。

171.3.1 DBMS_SPACE ASA_RECOMMENDATIONSファンクション

このファンクションは、自動セグメント・アドバイザの保存された結果を使用してリコメンデーションを戻します。また、指定したオブジェクトに対する最新の実行結果を戻します。

構文

DBMS_SPACE.ASA_RECOMMENDATIONS (
   all_runs        IN    VARCHAR2 DEFAULT := TRUE,
   show_manual     IN    VARCHAR2 DEFAULT := TRUE,
   show_findings   IN    VARCHAR2 DEFAULT := FALSE)
 RETURN ASA_RECO_ROW_TB PIPELINED;

パラメータ

表171-4 ASA_RECOMMENDATIONSプロシージャのパラメータ

パラメータ 説明

all_runs

すべての自動アドバイザ実行の結果、または最新の実行結果のみを返します。有効な値は、TRUEおよびFALSEです。デフォルト値はTRUEです。

TRUEに設定すると、自動セグメント・アドバイザのすべての実行に関するリコメンデーションまたは検索結果を戻します。FALSEに設定すると、LATEST実行の結果のみを戻します。LATESTは、セグメント・アドバイザを手動で起動している場合は影響がありません。自動アドバイザの場合のみに適用できます。

show_manual

このパラメータは、手動ジョブの結果を含めるかどうかを指定するために使用されます。

TRUEの場合、手動タスクの結果が表示されます。FALSEの場合、手動タスクの結果は表示されません。manual=trueを指定しても、自動アドバイザ・タスクの指定は無効になりません。

ただし、all_runs設定はmanualを上書きする場合があります。all_runsFALSEの場合、最新の自動アドバイザ・ジョブのみを表示することを暗黙的に示しているため、manualはTRUEとして指定されない可能性があります。

有効な値は、TRUEおよびFALSEです。デフォルト値はTRUEです。

show_findings

リコメンデーションではなく、検索結果のみを表示します。有効な値は、TRUEおよびFALSEです。デフォルト値はFALSEです。

表171-5 パラメータの使用方法

all_runs show_manual show_ findings 結果
TRUE TRUE TRUE 自動アドバイザおよび手動タスクによるすべての結果。
TRUE TRUE FALSE 自動アドバイザおよび手動タスクからのすべてのリコメンデーション。
TRUE FALSE TRUE 自動アドバイザによるすべての結果。
TRUE FALSE FALSE すべての自動アドバイザ・タスクからのすべてのリコメンデーション。
FALSE TRUE TRUE なし
FALSE TRUE FALSE なし
FALSE FALSE TRUE 最新の自動アドバイザ・タスクの結果。
FALSE FALSE FALSE 最新の自動アドバイザ・タスクからのリコメンデーション。

171.3.2 CREATE_INDEX_COSTプロシージャ

このプロシージャでは、既存の表に索引を作成するコストを判断します。索引の作成に使用するDDL文を入力します。このプロシージャは、索引の作成に必要な記憶域を出力します。

構文

DBMS_SPACE.CREATE_INDEX_COST (
   ddl             IN    VARCHAR2,
   used_bytes      OUT   NUMBER,
   alloc_bytes     OUT   NUMBER,
   plan_table      IN    VARCHAR2 DEFAULT NULL);

プラグマ

pragma restrict_references(create_index_cost,WNDS);

パラメータ

表171-6 CREATE_INDEX_COSTプロシージャのパラメータ

パラメータ 説明

ddl

索引作成のDDL文。

used_bytes

実際の索引データを示すバイト数。

alloc_bytes

表領域に作成されたときの索引のサイズ。

plan_table

使用するPLAN TABLE。デフォルトはNULLです。

使用上のノート

  • 索引が作成される表は、すでに存在している必要があります。

  • 索引サイズの計算は、セグメント上で集められた統計情報に依存します。

  • 直近に表の分析が行われている必要があります。

  • 正しい統計情報がない場合は、このプロシージャでエラーが発生しなくても、結果が不正確になる可能性があります。

171.3.3 CREATE_TABLE_COSTプロシージャ

このプロシージャは、様々な属性を備えた表のサイズを判断するため、容量計画で使用されます。オブジェクトのサイズは、表領域の記憶域の属性、表領域のブロック・サイズなどによって大きく異なります。このプロシージャには、2つのオーバーロードがあります。

  • 最初のバージョンでは、表の列情報を引数として使用して、表サイズを出力します。

  • 2つ目のバージョンでは、表の標準行サイズを引数として使用し、表サイズを出力します。

このプロシージャは、ディクショナリ管理表領域とローカル管理表領域のエクステント管理でも、手動および自動によるセグメント領域管理でも使用できます。

構文

DBMS_SPACE.CREATE_TABLE_COST (
   tablespace_name    IN VARCHAR2,
   avg_row_size       IN NUMBER,
   row_count          IN NUMBER,
   pct_free           IN NUMBER,
   used_bytes         OUT NUMBER,
   alloc_bytes        OUT NUMBER);

DBMS_SPACE.CREATE_TABLE_COST (
   tablespace_name    IN VARCHAR2,
   colinfos           IN CREATE_TABLE_COST_COLUMNS,
   row_count          IN NUMBER,
   pct_free           IN NUMBER,
   used_bytes         OUT NUMBER,
   alloc_bytes        OUT NUMBER);

CREATE TYPE create_table_cost_colinfo IS OBJECT (
   COL_TYPE   VARCHAR(200),
   COL_SIZE   NUMBER);

パラメータ

表171-7 CREATE_TABLE_COSTプロシージャのパラメータ

パラメータ 説明

tablespace_name

オブジェクトが作成される表領域。デフォルトはSYSTEM表領域です。

avg_row_size

表の予測平均行サイズ。

colinfos

列の説明。

row_count

表の予測平均行数。

pct_free

将来の更新で既存行の拡張に使用される、各ブロックにおける空き領域のパーセント。

used_bytes

ユーザー・データが使用する領域。

alloc_bytes

表領域のエクステント特性を考慮に入れたオブジェクトのサイズ。

使用上のノート

  • used_bytesは、データが使用する実際のバイト数を表します。このサイズには、ブロック・メタデータ、PCTFREEなどによるオーバーヘッドが含まれます。

  • alloc_bytesは、表領域に作成されるときの表のサイズを示します。このサイズには、表領域におけるエクステントのサイズ、および表領域エクステント管理のプロパティが考慮されています。

-- review the parameters 
SELECT argument_name, data_type, type_owner, type_name 
FROM all_arguments 
WHERE object_name = 'CREATE_TABLE_COST' 
AND overload = 2 
 
-- examine the input parameter type 
SELECT text 
FROM dba_source 
WHERE name = 'CREATE_TABLE_COST_COLUMNS'; 
 
-- drill down further into the input parameter type 
SELECT text 
FROM dba_source 
WHERE name = 'create_table_cost_colinfo'; 
 
set serveroutput on 
 
DECLARE 
 ub NUMBER; 
 ab NUMBER; 
 cl sys.create_table_cost_columns; 
BEGIN 
  cl := sys.create_table_cost_columns( sys.create_table_cost_colinfo('NUMBER',10), 
        sys.create_table_cost_colinfo('VARCHAR2',30), 
        sys.create_table_cost_colinfo('VARCHAR2',30), 
        sys.create_table_cost_colinfo('DATE',NULL)); 
 
  DBMS_SPACE.CREATE_TABLE_COST('SYSTEM',cl,100000,0,ub,ab); 
 
  DBMS_OUTPUT.PUT_LINE('Used Bytes: ' || TO_CHAR(ub)); 
  DBMS_OUTPUT.PUT_LINE('Alloc Bytes: ' || TO_CHAR(ab)); 
END; 
/ 

171.3.4 FREE_BLOCKSプロシージャ

このプロシージャは、オブジェクト(表、索引またはクラスタ)にある空きブロックに関する情報を戻します。

自動セグメント領域管理セグメントでの空きブロック情報の詳細は、「SPACE_USAGEプロシージャ」を参照してください。

構文

DBMS_SPACE.FREE_BLOCKS (
   segment_owner     IN  VARCHAR2, 
   segment_name      IN  VARCHAR2,
   segment_type      IN  VARCHAR2,
   freelist_group_id IN  NUMBER,
   free_blks         OUT NUMBER,
   scan_limit        IN  NUMBER DEFAULT NULL,
   partition_name    IN  VARCHAR2 DEFAULT NULL);

プラグマ

pragma restrict_references(free_blocks,WNDS);

パラメータ

表171-8 FREE_BLOCKSプロシージャのパラメータ

パラメータ 説明

segment_owner

分析するセグメントのスキーマ名。

segment_name

分析するセグメントのセグメント名。

segment_type

分析するセグメントのタイプ(TABLEINDEXまたはCLUSTER):

  • TABLE

  • TABLE PARTITION

  • TABLE SUBPARTITION

  • INDEX

  • INDEX PARTITION

  • INDEX SUBPARTITION

  • CLUSTER

  • LOB

  • LOB PARTITION

  • LOB SUBPARTITION

freelist_group_id

空きリスト・サイズが計算される空きリスト・グループ(インスタンス)。

free_blks

指定されたグループに関する空きブロック数を戻します。

scan_limit

読み込む空きリストのブロックの最大数(オプション)。

空きリストにX個のブロックがあるかのみを確認する場合は、X個のスキャン制限を使用します。

partition_name

分析するセグメントのパーティション名。

これは、パーティション表についてのみ使用します。サブパーティションの名前は、パーティションがコンポジットのときに使用します。

次の例では、4つの空きリスト・グループを持つ、SCOTTスキーマにあるCLUSクラスタが使用されます。CLUSの空きリスト・グループ3にあるブロック数が戻されます。

DBMS_SPACE.FREE_BLOCKS('SCOTT', 'CLUS', 'CLUSTER', 3, :free_blocks); 

ノート:

scan_limitが正数でない場合は、エラーが発生します。

171.3.5 ISDATAFILEDROPPABLE_NAMEプロシージャ

このプロシージャは、データファイルが削除可能かどうかを確認します。実際にファイルを削除する前にこのプロシージャがコールされる場合があります。

構文

DBMS_SPACE.ISDATAFILEDROPPABLE_NAME (
   filename     IN     VARCHAR2, 
   value        OUT    NUMBER);

プラグマ

pragma restrict_references(free_blocks,WNDS);

パラメータ

表171-9 ISDATAFILEDROPPABLE_NAMEプロシージャのパラメータ

パラメータ 説明

filename

ファイル名

value

ファイルが削除可能でない場合、値: 0、ファイルが削除可能な場合、1

DECLARE   fname    VARCHAR2(100);   retval   NUMBER;BEGIN   SELECT file_name   INTO fname   FROM dba_data_files   WHERE file_name like '%empty%';DBMS_SPACE.ISDATAFILEDROPPABLE_NAME(fname, retval);DBMS_OUTPUT.PUT_LINE(retval);END;/

171.3.6 OBJECT_DEPENDENT_SEGMENTSファンクション

この表ファンクションは、指定したオブジェクトに関連付けられたセグメントのリストを戻します。

構文

DBMS_SPACE.OBJECT_DEPENDENT_SEGMENTS(
   objowner    IN     VARCHAR2,
   objname     IN     VARCHAR2,
   partname    IN     VARCHAR2,
   objtype     IN     NUMBER) 
  RETURN dependent_segments_table PIPELINED; 

パラメータ

表171-10 OBJECT_DEPENDENT_SEGMENTSファンクションのパラメータ

パラメータ 説明

objowner

オブジェクトを含むスキーマ。

objname

オブジェクトの名前。

partname

パーティションの名前。

objtype

オブジェクトのタイプ:

  • OBJECT_TYPE_TABLE constant positive := 1;

  • OBJECT_TYPE_NESTED_TABLE constant positive := 2;

  • OBJECT_TYPE_INDEX constant positive := 3;

  • OBJECT_TYPE_CLUSTER constant positive := 4;

  • OBJECT_TYPE_TABLE_PARTITION constant positive := 7;

  • OBJECT_TYPE_INDEX_PARTITION constant positive := 8;

  • OBJECT_TYPE_TABLE_SUBPARTITION constant positive := 9;

  • OBJECT_TYPE_INDEX_SUBPARTITION constant positive := 10;

  • OBJECT_TYPE_MV constant positive := 13;

  • OBJECT_TYPE_MVLOG constant positive := 14;

戻り値

dependent_segments_tableの1行のコンテンツ:

TYPE object_dependent_segment IS RECORD (
   segment_owner      VARCHAR2(100),
   segment_name       VARCHAR2(100),
   segment_type       VARCHAR2(100),
   tablespace_name    VARCHAR2(100),
   partition_name     VARCHAR2(100),
   lob_column_name    VARCHAR2(100)); 

表171-11 OBJECT_DEPENDENT_SEGMENTタイプのパラメータ

パラメータ 説明

segment_owner

セグメントを含むスキーマ。

segment_name

セグメントの名前。

segment_type

セグメントのタイプ(表、索引、LOBなど)。

tablespace_name

表領域の名前。

partition_name

パーティションの名前(オプション)。

lob_column_name

LOB列の名前(オプション)。

171.3.7 OBJECT_GROWTH_TRENDファンクション

これは表ファンクションです。結果は、特定の時点におけるオブジェクトの領域使用が行ごとに記述された1つ以上の行です。

領域使用の合計は、Automatic Workload Repository Facilities(AWRF)から取得するか、または現在の領域使用を計算しAWRFから取得した領域使用デルタと組み合せて取得します。

構文

DBMS_SPACE.OBJECT_GROWTH_TREND (
   object_owner           IN    VARCHAR2,
   object_name            IN    VARCHAR2,
   object_type            IN    VARCHAR2,
   partition_name         IN    VARCHAR2 DEFAULT NULL,
   start_time             IN    TIMESTAMP DEFAULT NULL,
   end_time               IN    TIMESTAMP DEFAULT NULL,
   interval               IN    DSINTERVAL_UNCONSTRAINED DEFAULT NULL,
   skip_interpolated      IN    VARCHAR2 DEFAULT 'FALSE',
   timeout_seconds        IN    NUMBER DEFAULT NULL,
   single_datapoint_flag  IN    VARCHAR2 DEFAULT 'TRUE') 
 RETURN object_growth_trend_table PIPELINED;  

パラメータ

表171-12 OBJECT_GROWTH_TRENDファンクションのパラメータ

パラメータ 説明

object_owner

オブジェクトを含むスキーマ。

object_name

オブジェクトの名前。

object_type

オブジェクトのタイプ。

partition_name

パーティションの名前。

start_time

この時間以降に生成された統計は、成長傾向の生成に使用されます。

end_time

この時間までに生成された統計は、成長傾向の生成に使用されます。

interval

サンプルを取得する間隔。

skip_interpolated

欠損値の補間をスキップするかどうかを指定します。

timeout_seconds

ファンクションのタイムアウト値(秒)。

single_data_point_flag

統計がない場合にセグメントのサンプルを取得するかどうかを指定します。

戻り値

OBJECT_GROWTH_TREND表ファンクションでは、出力を記述するためにobject_growth_trend_rowおよびobject_growth_trend_tableを使用します。

TYPE object_growth_trend_row IS RECORD(
   timepoint      TIMESTAMP,
   space_usage    NUMBER,
   space_alloc    NUMBER,
   quality        VARCHAR(20)); 

表171-13 OBJECT_GROWTH_TREND_ROWタイプのパラメータ

パラメータ 説明

timepoint

統計が記録された時間。

space_usage

データが使用する領域。

space_alloc

セグメントのサイズ。オーバーヘッドおよび未使用領域も含まれます。

quality

結果の品質。"GOOD"、"INTERPOLATED"、"PROJECTION"の値を取ります。

TYPE object_growth_trend_table IS TABLE OF object_growth_trend_row;

171.3.8 SPACE_USAGEプロシージャ

このプロシージャには、領域使用を示すバリエーションが2つあります。

このプロシージャの最初の形式は、セグメント最高水位標のデータ・ブロックの領域使用量を示します。LOBLOB PARTITIONSおよびLOB SUBPARTITIONSの使用量を計算できます。このプロシージャは、自動セグメント領域管理で作成された表領域でのみ使用できます。ビットマップ・ブロック、セグメント・ヘッダーおよびエクステント・マップ・ブロックはこのプロシージャの対象外です。このオーバーロードは、SECUREFILE LOBでは使用できないことに注意してください。

ノート:

LOBセグメントの場合、full_blocksおよびunformatted_blocksから戻されるブロックの数は、実際にはLOBセグメントのチャンクの数です。

このプロシージャの2番目の形式は、SECUREFILE LOB領域使用量に関する情報を戻します。これは、LOBセグメント内のすべてのSECUREFILE LOBによって使用されている、ブロック内の領域容量を戻します。このプロシージャによって、LOB列によってアクティブに使用されている領域、保存期限が切れている空き領域および保存期限が切れていない空き領域が表示されます。このオーバーロードは、SECUREFILE LOBでのみ使用できることに注意してください。

構文

DBMS_SPACE.SPACE_USAGE(
   segment_owner           IN  VARCHAR2,
   segment_name            IN  VARCHAR2,
   segment_type            IN  VARCHAR2,
   unformatted_blocks      OUT NUMBER,
   unformatted_bytes       OUT NUMBER,
   fs1_blocks              OUT NUMBER,
   fs1_bytes               OUT NUMBER,
   fs2_blocks              OUT NUMBER,
   fs2_bytes               OUT NUMBER,
   fs3_blocks              OUT NUMBER,
   fs3_bytes               OUT NUMBER,
   fs4_blocks              OUT NUMBER,
   fs4_bytes               OUT NUMBER,
   full_blocks             OUT NUMBER,
   full_bytes              OUT NUMBER,
   partition_name          IN  VARCHAR2 DEFAULT NULL); 
DBMS_SPACE.SPACE_USAGE(
   segment_owner           IN    VARCHAR2,
   segment_name            IN    VARCHAR2,
   segment_type            IN    VARCHAR2,
   segment_size_blocks     OUT   NUMBER,
   segment_size_bytes      OUT   NUMBER,
   used_blocks             OUT   NUMBER,
   used_bytes              OUT   NUMBER,
   expired_blocks          OUT   NUMBER,
   expired_bytes           OUT   NUMBER,
   unexpired_blocks        OUT   NUMBER,
   unexpired_bytes         OUT   NUMBER,
   partition_name          IN    VARCHAR2 DEFAULT NULL);

パラメータ

表171-14 SPACE_USAGEプロシージャのパラメータ

パラメータ 説明

segment_owner

分析するセグメントのスキーマ名。

segment_name

分析するセグメントの名前。

partition_name

分析するセグメントのパーティション名。

segment_type

分析するセグメントのタイプ(TABLEINDEXまたはCLUSTER):

  • TABLE

  • TABLE PARTITION

  • TABLE SUBPARTITION

  • INDEX

  • INDEX PARTITION

  • INDEX SUBPARTITION

  • CLUSTER

  • LOB

  • LOB PARTITION

  • LOB SUBPARTITION

unformatted_blocks

LOBセグメントの場合、unformatted_blocksから戻されるブロックの数は、実際にはLOBセグメントのチャンクの数です。

unformatted bytes

未フォーマットのバイトの合計数。

fs1_blocks

空き領域が最低で0から25%のブロック数。

fs1_bytes

空き領域が最低で0から25%のバイト数。

fs2_blocks

空き領域が最低で25から50%のブロック数。

fs2_bytes

空き領域が最低で25から50%のバイト数。

fs3_blocks

空き領域が最低で50から75%のブロック数。

fs3_bytes

空き領域が最低で50から75%のバイト数。

fs4_blocks

空き領域が最低で75から100%のブロック数。

fs4_bytes

空き領域が最低で75から100%のバイト数。

ful1_blocks

full_blocksから戻されるブロックの数は、実際にはLOBセグメントのチャンクの数です

full_bytes

セグメントが一杯になった場合のバイトの合計数。

segment_size_blocks

セグメントに割り当てられているブロックの数。

segment_size_bytes

セグメントに割り当てられているバイトの数。

used_blocks

アクティブなデータが含まれているLOBに割り当てられているブロックの数。

used_bytes

アクティブなデータが含まれているLOBに割り当てられているバイトの数。

expired_blocks

LOBでバージョン・データの保持に使用されている期限切れブロックの数。

expired_bytes

LOBでバージョン・データの保持に使用されている期限切れバイトの数。

unexpired_blocks

LOBでバージョン・データの保持に使用されている期限切れになっていないブロックの数。

unexpired_bytes

LOBでバージョン・データの保持に使用されている期限切れになっていないバイトの数。

partition_name

パーティションの名前(パーティションでない場合はNULL)。

variable unf number; 
variable unfb number; 
variable fs1 number; 
variable fs1b number; 
variable fs2 number; 
variable fs2b number; 
variable fs3 number; 
variable fs3b number; 
variable fs4 number; 
variable fs4b number; 
variable full number; 
variable fullb number; 

begin 
dbms_space.space_usage('U1','T', 
                        'TABLE', 
                        :unf, :unfb, 
                        :fs1, :fs1b, 
                        :fs2, :fs2b, 
                        :fs3, :fs3b, 
                        :fs4, :fs4b, 
                        :full, :fullb); 
end; 
/ 
print unf ; 
print unfb ; 
print fs4 ; 
print fs4b; 
print fs3 ; 
print fs3b; 
print fs2 ; 
print fs2b; 
print fs1 ; 
print fs1b; 
print full; 
print fullb; 

171.3.9 UNUSED_SPACEプロシージャ

このプロシージャは、オブジェクト(表、索引またはクラスタ)にある未使用領域に関する情報を戻します。

構文

DBMS_SPACE.UNUSED_SPACE (
   segment_owner              IN  VARCHAR2, 
   segment_name               IN  VARCHAR2,
   segment_type               IN  VARCHAR2,
   total_blocks               OUT NUMBER,
   total_bytes                OUT NUMBER,
   unused_blocks              OUT NUMBER,
   unused_bytes               OUT NUMBER,
   last_used_extent_file_id   OUT NUMBER,
   last_used_extent_block_id  OUT NUMBER,
   last_used_block            OUT NUMBER, 
   partition_name             IN  VARCHAR2 DEFAULT NULL);

パラメータ

表171-15 UNUSED_SPACEプロシージャのパラメータ

パラメータ 説明

segment_owner

分析するセグメントのスキーマ名。

segment_name

分析するセグメントのセグメント名。

segment_type

分析するセグメントのタイプ(TABLEINDEXまたはCLUSTER):

  • TABLE

  • TABLE PARTITION

  • TABLE SUBPARTITION

  • INDEX

  • INDEX PARTITION

  • INDEX SUBPARTITION

  • CLUSTER

  • LOB

  • LOB PARTITION

  • LOB SUBPARTITION

total_blocks

セグメント内のブロック合計数を戻します。

total_bytes

セグメント内のブロック合計数をバイト単位で戻します。

unused_blocks

未使用のブロック数を戻します。

unused_bytes

未使用のブロック数をバイト単位で戻します。

last_used_extent_file_id

データを含んだ最新エクステントのファイルIDを戻します。

last_used_extent_block_id

データを含んだ最新エクステントの開始ブロックIDを戻します。

last_used_block

データを含んだエクステント内の最終ブロックを戻します。

partition_name

分析するセグメントのパーティション名。

これは、パーティション表についてのみ使用します。サブパーティションの名前は、パーティションの構成時に使用します。

次の例では、必要なバインド変数を宣言してから実行します。

DBMS_SPACE.UNUSED_SPACE('SCOTT', 'EMP', 'TABLE', :total_blocks, 
   :total_bytes,:unused_blocks, :unused_bytes, :lastextf,  
   :last_extb, :lastusedblock);