6.90 SDO_NET.LOGICAL_PARTITION
構文
SDO_NET.LOGICAL_PARTITION( network IN VARCHAR2, partition_table_name IN VARCHAR2, max_num_nodes IN NUMBER, log_loc IN VARCHAR2, log_file IN VARCHAR2, open_mode IN VARCHAR2 DEFAULT 'A', link_level IN NUMBER DEFAULT 1);
または
SDO_NET.LOGICAL_PARTITION( network IN VARCHAR2, partition_table_name IN VARCHAR2, max_num_nodes IN NUMBER, log_loc IN VARCHAR2, log_file IN VARCHAR2, open_mode IN VARCHAR2 DEFAULT 'A', link_level IN NUMBER DEFAULT 1, part_size_tolerance IN NUMBER);
説明
論理ネットワークをパーティション化し、情報をパーティション表に格納します。
ノート:
論理ネットワークがべき乗則(スケールフリー)ネットワークである場合は、このプロシージャを使用してネットワークをパーティション化せずに、かわりにSDO_NET.LOGICAL_POWERLAW_PARTITIONプロシージャを使用します。
パラメータ
- network
-
ネットワーク名を指定します。
- partition_table_name
-
このプロシージャで作成されるパーティション表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルのパーティション情報で更新されます。)パーティション表については、「パーティション表」を参照してください。
- max_num_nodes
-
各パーティションに含まれるノードの最大数を指定します。たとえば、5000を指定した場合にネットワークに50,000個のノードが含まれていると、各パーティションには5000以下のノードが含まれることになり、パーティションの合計数は10以上になります。
- log_loc
-
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
- log_file
-
発生する可能性があるエラーや問題など、論理ネットワークでの操作に関する情報を格納するログ・ファイルを指定します。
- open_mode
-
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。
W
は上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A
(デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。A
を指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。 - link_level
-
パーティション化を実行するネットワーク・リンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
- part_size_tolerance
-
パーティション・サイズの許可された許容差(
max_num_nodes
の小数として表される)を指定します。0から1の範囲である必要があります。このパラメータを使用すると、パーティション化を行うプロシージャで、max_num_nodes
により指定されたサイズより大きなサイズのパーティションを作成できますので、相互接続性の低いパーティションを柔軟に生成することが可能です。たとえば、max_num_nodes
が5000で、part_size_tolerance
が0.1である場合、パーティションには最大5500個(0.1*5000は500であるため、5000 + 500で算出)のノードを含めることができます。
使用上のノート
part_size_tolerance
パラメータを使用すると、エッジカットを小さく維持しながらパーティション間の相互接続性を減らすことに重点を置いて、論理ネットワークをパーティション化できます。
このプロシージャを使用してパーティションを作成した後、特に大規模なネットワークの場合は、多くのネットワーク分析操作のパフォーマンスを向上させるためにSDO_NET.GENERATE_PARTITION_BLOBSプロシージャの使用を検討してください。
例
次の例では、MY_LOGICAL_NET
ネットワーク内にリンク・レベル1のパーティションを作成して、MY_LOGICAL_PART_TAB表を作成します。各パーティションに配置するノードの最大数は5000です。操作に関する情報は、LOG_DIR
という名前のディレクトリ・オブジェクトに関連付けられた場所にあるmy_logical_part.log
ファイルに追加されます(open_mode => 'a'
)。
EXECUTE SDO_NET.LOGICAL_PARTITION(network => 'MY_LOGICAL_NET', - partition_table_name => 'my_logical_part_tab',- max_num_nodes => 5000,- log_loc => 'LOG_DIR', log_file=> 'my_logical_part.log',- link_level => 1, open_mode => 'a');
次の例では、MY_LOGICAL_NET
ネットワーク内にリンク・レベル1のパーティションを作成して、MY_LOGICAL_PART_TAB表を作成します。max_num_nodes
の値とpart_size_tolerance
の値の組合せ(5000 + 0.1*5000 = 5500)になるので、各パーティションに配置されるノードの最大数は5500です。操作に関する情報は、LOG_DIR
という名前のディレクトリ・オブジェクトに関連付けられた場所にあるmy_logical_part.log
ファイルに書き込まれ(open_mode => 'w'
)、その場所にこの名前を持つ既存のファイルがある場合には置換します。
EXECUTE SDO_NET.LOGICAL_PARTITION(network => 'MY_LOGICAL_NET', - partition_table_name => 'my_logical_part_tab',- max_num_nodes => 5000,- log_loc => 'LOG_DIR', log_file=> 'my_logical_part.log',- link_level => 1, open_mode => 'w', part_size_tolerance => 0.1);
親トピック: SDO_NETパッケージ・サブプログラム