10.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=Tenables 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