A.13.23 OPG_APIS.ESTIMATE_TRIANGLE_RENUM
Format
COUNT_TRIANGLE_ESTIMATE( edge_tab_name IN VARCHAR2, wt_undBM IN VARCHAR2, wt_rnmap IN VARCHAR2, wt_undAM IN VARCHAR2, num_sub_ptns IN INTEGER DEFAULT 1, chunk_id IN INTEGER DEFAULT 1, dop IN INTEGER DEFAULT 1, tbs IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER;
Description
Estimates the number of triangles in a property graph.
Parameters
- edge_tab_name
-
Name of the property graph edge table.
- wt_undBM
-
A working table holding an undirected version of the original graph (before renumbering optimization).
- wt_rnmap
-
A working table that is a mapping table for renumbering optimization.
- wt_undAM
-
A working table holding the undirected version of the graph data after applying the renumbering optimization.
- num_sub_ptns
-
Number of logical subpartitions used in calculating triangles . Must be a positive integer, power of 2 (1, 2, 4, 8, ...). For a graph with a relatively small maximum degree, use the value 1 (the default).
- chunk_id
-
The logical subpartition to be used in triangle estimation (Only this partition will be counted). It must be an integer between 0 and
num_sub_ptns*num_sub_ptns-1
. - dop
-
Degree of parallelism for the operation. The default is 1 (no parallelism).
- tbs
-
Name of the tablespace to hold the data stored in working tables.
- options
-
Additional settings for operation. An optional string with one or more (comma-separated) of the following values:
-
PDML=T
enables parallel DML.
-
Usage Notes
This function counts the total triangles in a portion of size 1/(num_sub_ptns*num_sub_ptns)
of the graph; so to estimate the total number of triangles in the graph, you can multiply the result by num_sub_ptns*num_sub_ptns
.
The property graph edge table must exist in the database, and the OPG_APIS.COUNT_TRIANGLE_PREP procedure must already have been executed.
Examples
The following example estimates the number of triangle in the property graph named connections
. It does not perform the cleanup after it finishes, so you can count triangles again on the same graph without calling the preparation procedure.
set serveroutput on DECLARE wt1 varchar2(100); -- intermediate working table wt2 varchar2(100); wt3 varchar2(100); n number; BEGIN opg_apis.count_triangle_prep('connectionsGE$', wt1, wt2, wt3); n := opg_apis.estimate_triangle_renum( 'connectionsGE$', wt1, wt2, wt3, num_sub_ptns=>64, chunk_id=>2048, dop=>2, tbs => 'MYPG_TS', options=>'PDML=T' ); dbms_output.put_line('estimated number of triangles ' || (n * 64 * 64)); END; /
Parent topic: OPG_APIS Package Subprograms