9.26 OPG_APIS.FIND_CC_MAPPING_BASED

形式

OPG_APIS.FIND_CC_MAPPING_BASED(
     edge_tab_name IN VARCHAR2,
     wt_clusters   IN OUT VARCHAR2,
     wt_undir      IN OUT VARCHAR2,
     wt_cluas      IN OUT VARCHAR2,
     wt_newas      IN OUT VARCHAR2,
     wt_delta      IN OUT VARCHAR2,
     dop           IN INTEGER DEFAULT 4,
     rounds        IN INTEGER DEFAULT 0,
     tbs           IN VARCHAR2 DEFAULT NULL,
     options       IN VARCHAR2 DEFAULT NULL);

説明

プロパティ・グラフの接続されているコンポーネントを検出します。接続されているすべてのコンポーネントは wt_clusters表に格納されます。元のグラフは方向性がないものとして扱われます。

パラメータ

edge_tab_name

プロパティ・グラフ・エッジ表の名前。

wt_clusters

最終的な頂点クラスタ・マッピングを保持する作業表。この表には列が2つあります(VID NUMBER、CLUSTER_ID NUMBER)。列VIDには頂点ID値が格納され、列CLUSTER_IDには対応するクラスタID値が格納されます。クラスタID値は長整数で、間にギャップがあってもかまいません。

空白の名前を指定すると、新しい表が生成され、その名前が戻されます。

wt_undir

グラフの方向付けのないバージョンを保持する作業表。

wt_cluas

現在のクラスタ割当てを保持する作業表。

wt_newas

更新されたクラスタ割当てを保持する作業表。

wt_delta

クラスタ割当ての変更(差分)を保持する作業表。

dop

操作の並列度。デフォルトは4です。

rounds

接続されたコンポーネントの検索で実行する反復の最大数。デフォルト値の0 (ゼロ)は接続されたコンポーネントがすべて検出されるまで計算が継続することを意味します。

tbs

作業表に格納されたデータを保持する表領域の名前。

options

操作に対する追加の設定。

  • 'PDML=T'はパラレルDMLを使用可能にします。

使用上のノート

プロパティ・グラフ・エッジ表はデータベースに存在している必要があり、OPG_APIS.FIND_CLUSTERS_PREPプロシージャは実行済である必要があります。

次の例は、mypgという名前のプロパティ・グラフの接続されたコンポーネントを検索します。

DECLARE
  wtClusters   varchar2(200) := 'mypg_clusters';
  wtUnDir      varchar2(200);
  wtCluas      varchar2(200);
  wtNewas      varchar2(200);
  wtDelta      varchar2(200);
BEGIN
  opg_apis.find_clusters_prep('mypgGE$', wtClusters, wtUnDir,
      wtCluas, wtNewas, wtDelta, '');
  dbms_output.put_line('working tables names ' || wtClusters || ' '
|| wtUnDir || ' ' || wtCluas || ' '  || wtNewas    || ' '
|| wtDelta );

opg_apis.find_cc_mapping_based(''mypgGE$', wtClusters, wtUnDir,
      wtCluas, wtNewas, wtDelta, 8, 0, 'MYTBS', 'PDML=T');

--
-- logic to consume results in wtClusters
-- e.g.: 
-- select /*+ parallel(8) */ count(distinct cluster_id) 
--   from mypg_clusters;

-- cleanup all the working tables
  opg_apis.find_clusters_cleanup('mypgGE$', wtClusters, wtUnDir,
      wtCluas, wtNewas, wtDelta, '');

END;
/