プライマリ・コンテンツに移動
Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス
12c リリース1 (12.1)
B71281-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

36 DBMS_COMPRESSION

DBMS_COMPRESSIONパッケージは、アプリケーションの正しい圧縮レベルを簡単に選択できるインタフェースを提供します。


関連項目:

  • 『Oracle Database管理者ガイド』

  • 『Oracle Database概要』

  • 『Oracle Database SQL言語リファレンス』

  • 『Oracle Databaseデータ・ウェアハウス・ガイド』

  • 『Oracle Database VLDBおよびパーティショニング・ガイド』

  • 『Oracle Databaseリファレンス』


この章では、次の項目について説明します。

DBMS_COMPRESSIONの使用方法

概要

DBMS_COMPRESSIONパッケージは、データベース環境内で圧縮に関連する情報を収集します。これには、パーティション化された表およびパーティション化されていない表について圧縮率を推測し、以前に圧縮された表に関する行レベルの圧縮情報を収集するツールが含まれます。これによって、圧縮に関連した決定を行うための適切な情報が得られます。

セキュリティ・モデル

DBMS_COMPRESSSIONパッケージはAUTHID CURRENT USERで定義されるため、現在のユーザーの権限で実行されます。

定数

DBMS_COMPRESSIONパッケージでは、表36-1「DBMS_COMPRESSIONの定数 - 圧縮タイプ」に示す定数が使用されます。

表36-1 DBMS_COMPRESSIONの定数 - 圧縮タイプ

定数 タイプ 説明

COMP_NOCOMPRESS

NUMBER

1

圧縮なし

COMP_ADVANCED

NUMBER

2

詳細圧縮レベル

COMP_QUERY_HIGH

NUMBER

4

問合せ操作のための高圧縮レベル

COMP_QUERY_LOW

NUMBER

8

問合せ操作のための低圧縮レベル

COMP_ARCHIVE_HIGH

NUMBER

16

アーカイブ操作のための高圧縮レベル

COMP_ARCHIVE_LOW

NUMBER

32

アーカイブ操作のための低圧縮レベル

COMP_BLOCK

NUMBER

64

圧縮される行

COMP_LOB_HIGH

NUMBER

128

LOB操作のための高圧縮レベル

COMP_LOB_MEDIUM

NUMBER

256

LOB操作のための中圧縮レベル

COMP_LOB_LOW

NUMBER

512

LOB操作のための低圧縮レベル

COMP_INDEX_ADVANCED_HIGH

NUMBER

1024

索引のための高圧縮レベル

COMP_INDEX_ADVANCED_LOW

NUMBER

2048

索引のための低圧縮レベル

COMP_RATIO_LOB_MINROWS

NUMBER

1000

LOB圧縮率が見積られるオブジェクトの必要最低限のLOB数

COMP_BASIC

NUMBER

4096

基本圧縮レベル

COMP_RATIO_LOB_MAXROWS

NUMBER

5000

LOB圧縮率の計算に使用されるLOBの最大数

COMP_INMEMORY_NOCOMPRESS

NUMBER

8192

インメモリー圧縮なし

COMP_INMEMORY_DML

NUMBER

16384

DMLのためのインメモリー圧縮レベル

COMP_INMEMORY_QUERY_LOW

NUMBER

32768

問合せパフォーマンスのために最適化されたインメモリー圧縮レベル

COMP_INMEMORY_QUERY_HIGH

NUMBER

65536

問合せパフォーマンスおよび領域の節約に対して最適化されたインメモリー圧縮レベル

COMP_INMEMORY_CAPACITY_LOW

NUMBER

32768

容量を最適化するインメモリー低圧縮レベル

COMP_INMEMORY_CAPACITY_HIGH

NUMBER

65536

容量を最適化するインメモリー高圧縮レベル

COMP_RATIO_MINROWS

NUMBER

1000000

HCC比が見積もられるオブジェクトの必要最低限の行数

COMP_RATIO_ALLROWS

NUMBER

-1

オブジェクトのすべての行を使用してHCC比が見積もられたことを示します。

OBJTYPE_TABLE

PLS_INTEGER

1

圧縮率を見積もるオブジェクトをタイプ表として識別します。

OBJTYPE_INDEX

PLS_INTEGER

2

圧縮率が見積もられるオブジェクトをタイプ索引として識別します。



注意:

ハイブリッド列圧縮は特定のOracleストレージ・システムの機能です。詳細は、『Oracle Database概要』を参照してください。

データ構造

DBMS_COMPRESSIONパッケージでは、レコード・タイプとタイプを定義します。

レコード・タイプ

COMPRECレコード・タイプ

COMPRECレコード・タイプ

表の個々の索引圧縮率を計算するためのレコードです。

構文

TYPE COMPREC IS RECORD(
  ownname           varchar2(255),
  objname           varchar2(255),
  blkcnt_cmp        PLS_INTEGER,
  blkcnt_uncmp      PLS_INTEGER,
  row_cmp           PLS_INTEGER,
  row_uncmp         PLS_INTEGER,
  cmp_ratio         NUMBER,
  objtype           PLS_INTEGER);

フィールド

表36-2 COMPREC属性

フィールド 説明

ownname

オブジェクト所有者のスキーマ。

objname

オブジェクト名。

blkcnt_cmp

オブジェクトの圧縮されたサンプルに使用されるブロック数。

blkcnt_uncmp

オブジェクトの圧縮解除されたサンプルに使用されるブロック数。

row_cmp

オブジェクトの圧縮されたサンプルにあるブロック内の行数。

row_uncmp

オブジェクトの圧縮解除されたサンプルにあるブロック内の行数。

cmp_ratio

圧縮比、blkcnt_uncmpblkcnt_cmpで割った値。

objtype

オブジェクトのタイプ


COMPRECLIST表タイプ

COMPRECレコード・タイプの表タイプです。

構文

TYPE compreclist IS TABLE OF comprec;

DBMS_COMPRESSIONサブプログラムの要約

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

サブプログラム 説明

GET_COMPRESSION_RATIOプロシージャ


表の圧縮比を分析し、表の圧縮率に関する情報を提供します。

GET_COMPRESSION_TYPEファンクション


特定の行に対する圧縮タイプを戻します。


GET_COMPRESSION_RATIOプロシージャ

このプロシージャは、表の圧縮比を分析し、表の圧縮率に関する情報を提供します。ユーザーは様々なパラメータを入力して、異なる圧縮タイプを選択的に分析できます。

構文

次のようにオブジェクト(表または索引。デフォルトは表)の圧縮率を取得します。

DBMS_COMPRESSION.GET_COMPRESSION_RATIO (
   scratchtbsname        IN     VARCHAR2, 
   ownname               IN     VARCHAR2, 
   objname               IN     VARCHAR2,
   subobjname            IN     VARCHAR2,
   comptype              IN     NUMBER,
   blkcnt_cmp            OUT    PLS_INTEGER,
   blkcnt_uncmp          OUT    PLS_INTEGER,
   row_cmp               OUT    PLS_INTEGER,
   row_uncmp             OUT    PLS_INTEGER,
   cmp_ratio             OUT    NUMBER,
   comptype_str          OUT    VARCHAR2,
   subset_numrows        IN     NUMBER  DEFAULT COMP_RATIO_MINROWS,
   objtype               IN     PLS_INTEGER DEFAULT OBJTYPE_TABLE); 

次のように、LOBの圧縮率を取得します。

DBMS_COMPRESSION.GET_COMPRESSION_RATIO (
   scratchtbsname        IN     VARCHAR2,
   tabowner              IN     VARCHAR2,
   tabname               IN     VARCHAR2,
   lobname               IN     VARCHAR2,
   partname              IN     VARCHAR2,
   comptype              IN     NUMBER,
   blkcnt_cmp            OUT    PLS_INTEGER,
   blkcnt_uncmp          OUT    PLS_INTEGER,
   lobcnt                OUT    PLS_INTEGER,
   cmp_ratio             OUT    NUMBER,
   comptype_str          OUT    VARCHAR2,
   subset_numrows        IN     number DEFAULT COMP_RATIO_LOB_MAXROWS);

表のすべての索引の圧縮率を取得します。圧縮率はコレクションとして戻されます。

DBMS_COMPRESSION.GET_COMPRESSION_RATIO (
  scratchtbsname        IN     VARCHAR2,
  ownname               IN     VARCHAR2,
  tabname               IN     VARCHAR2,
  comptype              IN     NUMBER,
  index_cr              OUT    compRecList,
  comptype_str          OUT    VARCHAR2,
  subset_numrows        IN     NUMBER DEFAULT COMP_RATIO_INDEX_MINROWS);

パラメータ

表36-4 GET_COMPRESSION_RATIOプロシージャのパラメータ

パラメータ 説明

scratchtbsname

分析に使用できる一時スクラッチ表領域。

ownname / tabowner

分析する表のスキーマ。

tabname

分析する表の名前。

objname

オブジェクト名。

subobjname

オブジェクトのパーティションまたはサブパーティションの名前。

comptype

分析を実行する対象の圧縮タイプ。

blkcnt_cmp

表の圧縮されたサンプルに使用されるブロック数。

blkcnt_uncmp

表の圧縮解除されたサンプルに使用されるブロック数。

row_cmp

表の圧縮されたサンプルにあるブロック内の行数。

row_uncmp

表の圧縮解除されたサンプルにあるブロック内の行数。

cmp_ratio

圧縮比、blkcnt_uncmpblkcnt_cmpで割った値。

comptype_str

圧縮タイプを説明する文字列。

subset_numrows

圧縮比を見積もるためにサンプリングされた行数。

objtype

オブジェクトのタイプ。このパッケージに定義されているオブジェクト型を示すには定数である必要があります。

lobname

LOB列名

partname

パーティション化された表の場合は、関連したパーティション名。

lobcnt

圧縮比を見積もるために実際にサンプリングされたLOBの数。

index_cr

索引のリストおよび見積り済の圧縮率。


使用上の注意

プロシージャは、スクラッチ表領域に異なる表を作成し、これらのオブジェクトで分析を実行します。ユーザー指定の表では何も変更しません。

GET_COMPRESSION_TYPEファンクション

このファンクションは、特定の行に対する圧縮タイプを戻します。行が連鎖している場合は、ファンクションは先頭の圧縮タイプのみを戻し、先頭は異なる圧縮が可能であるため、中間や末尾は調べません。

構文

DBMS_COMPRESSION.GET_COMPRESSION_TYPE (
   ownname      IN    VARCHAR2, 
   tabname      IN    VARCHAR2, 
   row_id       IN    ROWID,
   subobjname   IN    VARCHAR2 DEFAULT NULL))
  RETURN NUMBER;

パラメータ

表36-5 GET_COMPRESSION_TYPEファンクションのパラメータ

パラメータ 説明

ownname

表のスキーマ名。

tabname

表の名前。

rowid

行のROWID。

subobjname

表パーティションまたは表サブパーティションの名前。


戻り値

圧縮のタイプを示すフラグ(「DBMS_COMPRESSIONの定数: 圧縮タイプ」を参照)。