ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

ADVISE_DIMENSIONALITYファンクション

ADVISE_DIMENSIONALITYファンクションは、特定のパーティションについてADVISE_SPARSITYプロシージャにより生成されたスパース性の推奨事項に基づき、キューブ内の変数のディメンション順序およびコンポジット・ディメンションのOLAP DML定義を返します。


注意:

OLAPワークシート内からはこのファンクションを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

ADVISE_DIMENSIONALITY ( 
          cubename   IN     VARCHAR2,
          sparsedfn  OUT    VARCHAR2
          sparsename IN     VARCHAR2 DEFAULT NULL,
          partnum    IN     NUMBER DEFAULT 1,
          advtable   IN     VARCHAR2 DEFAULT NULL)
     RETURN VARCHAR2;

パラメータ

表B-4 ADVISE_DIMENSIONALITYファンクションのパラメータ

パラメータ 説明

cubename

ADVISE_SPARSITYへのコールで提供されるものと同一のcubename値。

sparsedfn

コンポジット・ディメンションの定義が格納されるオブジェクト(PL/SQL変数など)の名前。

sparsename

コンポジットのオブジェクト名。デフォルト値はcubename.cp

partnum

パーティションの数。デフォルトでは、最初のパーティションの定義のみが表示される。

advtable

分析結果を格納するためにSPARSITY_ADVICE_TABLEプロシージャで作成される表の名前。


次のPL/SQLプログラムの抜粋では、ADVISE_DIMENSIONALITYファンクションで返される推奨事項を格納する2つの変数を定義しています。SPARSEDIMは推奨されるコンポジットの定義を格納し、DIMLISTはキューブの推奨されるディメンションの順序を格納します。

DECLARE
     sparsedim VARCHAR2(500);
     dimlist VARCHAR2(500);
BEGIN
-- Calls to ADD_DIMENSION_SOURCE and ADVISE_SPARSITY omitted here
          .
          .
          .
dimlist := dbms_aw.advise_dimensionality('units_cube', sparsedim);
dbms_output.put_line('Sparse dimension:  ' || sparsedim);
dbms_output.put_line('Dimension list:  ' || dimlist);
END;
/

このプログラムでは、DBMS_OUTPUT.PUT_LINEを使用して分析結果を表示します。スパース性アドバイザにより、スパースなディメンションであるPRODUCTCUSTOMERおよびTIMEに対してコンポジット・ディメンションが推奨されます。UNITS_CUBEの推奨されるディメンションの順序は、CHANNELの後にこのコンポジットが続きます。

Sparse dimension:  DEFINE units_cube.cp COMPOSITE <product customer time>
Dimension list:  channel units_cube.cp<product customer time>

次の例では、スパース性アドバイザを使用して、Sales Historyというサンプル・スキーマのSALES表を評価します。WHILEループにより、すべてのパーティションの推奨事項が表示されます。

DECLARE
     dimlist VARCHAR2(500);
     sparsedim VARCHAR2(500);
     counter NUMBER(2) := 1;
     maxpart NUMBER(2);
BEGIN
-- Calls to ADD_DIMENSION_SOURCE and ADVISE_SPARSITY omitted here
          .
          .
          .
 
SELECT MAX(partnum) INTO maxpart FROM sh_sparsity_advice;
WHILE counter <= maxpart LOOP
dimlist := dbms_aw.advise_dimensionality('sales_cube', sparsedim, 
   'sales_cube_composite', counter, 'sh_sparsity_advice');
dbms_output.put_line('Dimension list:  ' || dimlist);
dbms_output.put_line('Sparse dimension:  ' || sparsedim);
counter := counter+1;
END LOOP;
dbms_aw.advise_dimensionality(defs,'sales_cube', 'sales_cube_composite',
   'DECIMAL', 'sh_sparsity_advice');
dbms_output.put_line('Definitions:  ');
dbms_aw.printlog(defs);
END;
/

スパース性アドバイザでは11のパーティションが推奨され、最初の10のパーティションは同一のコンポジットを使用します。最後のパーティションは別のコンポジットを使用します。(SH_SPARSITY_ADVICE表には、TIME_IDが最後のパーティションでは稠密であるが、他のパーティションでは非常にスパースであることが示されます。)

Dimension list:  sales_cube_composite<time channel product promotion customer>
Sparse dimension:  DEFINE sales_cube_composite COMPOSITE COMPRESSED <time channel product promotion customer>
Dimension list:   sales_cube_composite<time channel product promotion customer>
Sparse dimension:  DEFINE sales_cube_composite COMPOSITE COMPRESSED <time channel product promotion customer>
                   .
                   .
                   .
Dimension list:  time sales_cube_composite<channel product promotion customer>
Sparse dimension:  DEFINE sales_cube_composite COMPOSITE COMPRESSED <channel product promotion customer>