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>