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ファンクションのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
コンポジット・ディメンションの定義が格納されるオブジェクト(PL/SQL変数など)の名前。 |
|
|
コンポジットのオブジェクト名。デフォルト値は |
|
|
パーティションの数。デフォルトでは、最初のパーティションの定義のみが表示される。 |
|
|
分析結果を格納するために |
例
次の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を使用して分析結果を表示します。スパース性アドバイザにより、スパースなディメンションであるPRODUCT、CUSTOMERおよび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>