DSN_PGROUP_TABLE

The parallel group table, DSN_PGROUP_TABLE, contains information about the parallel groups in a query.

Begin program-specific programming interface information.
Recommendation: Start of changeDo not manually insert data into system-maintained EXPLAIN tables, and use care when deleting obsolete EXPLAIN table data. The data is intended to be manipulated only by the DB2® EXPLAIN function and optimization tools. Certain optimization tools depend on instances of the various EXPLAIN tables. Be careful not to delete data from or drop instances EXPLAIN tables that are created for these tools.End of change

Qualifiers

Your subsystem or data sharing group can contain more than one of these tables:
'SYSIBM'
Start of changeOne instance of this table can be created with the SYSIBM qualifier. DB2 and SQL optimization tools might use the table and the data that it contains. The table is created when you run job DSNTIJSG when you install or migrate DB2.End of change
'user-ID'
You can create additional instances of EXPLAIN tables that are qualified by user ID. These tables are populated with statement cost information when you issue the EXPLAIN statement or bind. They are also populated when you specify EXPLAIN(YES) or EXPLAIN(ONLY) in a BIND or REBIND command. SQL optimization tools might also create EXPLAIN tables that are qualified by a user ID. You can find the SQL statement for creating an instance of these tables in member DSNTESC of the SDSNSAMP library.

Sample CREATE TABLE statement

You can find a sample CREATE TABLE statement for each EXPLAIN table in member DSNTESC of the prefix.SDSNSAMP library.

Column descriptions

The following table describes the columns of DSN_PGROUP_TABLE

Table 1. DSN_PGROUP_TABLE description
Column name Data type Description
QUERYNO INTEGER NOT NULL A number that identifies the statement that is being explained. The origin of the value depends on the context of the row:
For rows produced by EXPLAIN statements
The number specified in the QUERYNO clause, which is an optional part of the SELECT, INSERT, UPDATE, MERGE, and DELETE statement syntax.
For rows not produced by EXPLAIN statements
DB2 assigns a number that is based on the line number of the SQL statement in the source program.

When the values of QUERYNO are based on the statement number in the source program, values that exceed 32767 are reported as 0. However, in certain rare cases, the value is not guaranteed to be unique.

Start of changeWhen the SQL statement is embedded in a compiled SQL function or native SQL procedure, if the QUERYNO clause is specified, its value is used by DB2. Otherwise DB2 assigns a number based on the line number of the SQL statement in the compiled SQL function or native SQL procedure.End of change

QBLOCKNO SMALLINT NOT NULL A number that identifies each query block within a query. The value of the numbers are not in any particular order, nor are they necessarily consecutive.
PLANNAME VARCHAR(24) NOT NULL The application plan name.
COLLID VARCHAR(128) NOT NULL The collection ID:
'DSNDYNAMICSQLCACHE'
The row originates from the dynamic statement cache
Start of change'DSNEXPLAINMODEYES'End of change
Start of changeThe row originates from an application that specifies YES for the value of the CURRENT EXPLAIN MODE special register.End of change
Start of change'DSNEXPLAINMODEEXPLAIN'End of change
Start of changeThe row originates from an application that specifies EXPLAIN for the value of the CURRENT EXPLAIN MODE special register.End of change

Start of changeWhen the SQL statement is embedded in a compiled SQL function or native SQL procedure, this column indicates the schema name of the compiled SQL function or native SQL procedure.End of change

PROGNAME VARCHAR(128) NOT NULL The name of the program or package containing the statement being explained. Applies only to embedded EXPLAIN statements and to statements explained as the result of binding a plan or package. A blank indicates that the column is not applicable.

Start of changeWhen the SQL statement is embedded in a compiled SQL function or native SQL procedure, this column indicates the specific name of the compiled SQL function or native SQL procedure.End of change

EXPLAIN_TIME TIMESTAMP NOT NULL The time when the EXPLAIN information was captured:
All cached statements
When the statement entered the cache, in the form of a full-precision timestamp value.
Non-cached static statements
When the statement was bound, in the form of a full precision timestamp value.
Non-cached dynamic statements
When EXPLAIN was executed, in the form of a value equivalent to a CHAR(16) representation of the time appended by 4 zeros.
VERSION VARCHAR(122) NOT NULL The version identifier for the package. Applies only to an embedded EXPLAIN statement executed from a package or to a statement that is explained when binding a package. A blank indicates that the column is not applicable.

Start of changeWhen the SQL statement is embedded in a compiled SQL function or native SQL procedure, this column indicates the version identifier of the compiled SQL function or native SQL procedure.End of change

GROUPID SMALLINT NOT NULL The parallel group identifier within the current query block.
FIRSTPLAN SMALLINT NOT NULL The plan number of the first contributing mini-plan associated within this parallel group.
LASTPLAN SMALLINT NOT NULL The plan number of the last mini-plan associated within this parallel group.
CPUCOST REAL NOT NULL The estimated total CPU cost of this parallel group in milliseconds.
IOCOST REAL NOT NULL The estimated total I/O cost of this parallel group in milliseconds.
BESTTIME REAL NOT NULL The estimated elapsed time for each parallel task for this parallel group.
DEGREE SMALLINT NOT NULL The degree of parallelism for this parallel group determined at bind time. Max parallelism degree if the Table space is large is 255, otherwise 64.
MODE CHAR(1) NOT NULL The parallel mode:
'I'
I/O parallelism
'C'
CPU parallelism
'X'
Multiple CPU Sysplex parallelism (highest level)
'N'
No parallelism
REASON SMALLINT NOT NULL The reason code for downgrading parallelism mode.
LOCALCPU SMALLINT NOT NULL The number of CPUs currently online when preparing the query.
TOTALCPU SMALLINT NOT NULL The total number of CPUs in Sysplex. LOCALCPU and TOTALCPU are different only for the DB2 coordinator in a Sysplex.
FIRSTBASE SMALLINT The table number of the table that partitioning is performed on.
LARGETS CHAR(1) 'Y' if the TableSpace is large in this group.
PARTKIND CHAR(1) The partitioning type:
'L'
Logical partitioning
'P'
Physical partitioning
GROUPTYPE CHAR(3) Determines what operations this parallel group contains: table Access, Join, or Sort 'A' 'AJ' 'AJS'
ORDER CHAR(1) The ordering requirement of this parallel group :
'N'
No order. Results need no ordering.
'T'
Natural Order. Ordering is required but results already ordered if accessed via index.
'K'
Key Order. Ordering achieved by sort. Results ordered by sort key. This value applies only to parallel sort.
STYLE CHAR(4) The Input/Output format style of this parallel group. Blank for IO Parallelism. For other modes:
'RIRO'
Records IN, Records OUT
'WIRO'
Work file IN, Records OUT
'WIWO'
Work file IN, Work file OUT
RANGEKIND CHAR(1) The range type:
'K'
Key range
Start of change'L'End of change
Start of changeIN-list elements partitioningEnd of change
'P'
Page range
Start of change'R'End of change
Start of changeRecord range partitioningEnd of change
NKEYCOLS SMALLINT The number of interesting key columns, that is, the number of columns that will participate in the key operation for this parallel group.
LOWBOUND VARCHAR(40) FOR BIT DATA The low bound of parallel group.
HIGHBOUND VARCHAR(40) FOR BIT DATA The high bound of parallel group.
LOWKEY VARCHAR(40) FOR BIT DATA The low key of range if partitioned by key range.
HIGHKEY VARCHAR(40) FOR BIT DATA The high key of range if partitioned by key range.
FIRSTPAGE CHAR(4) FOR BIT DATA The first page in range if partitioned by page range.
LASTPAGE CHAR(4) FOR BIT DATA The last page in range if partitioned by page range.
GROUP_MEMBER VARCHAR(24) NOT NULL The member name of the DB2 that executed EXPLAIN. The column is blank if the DB2 subsystem was not in a data sharing environment when EXPLAIN was executed.
HOST_REASON SMALLINT IBM® internal use only.
PARA_TYPE CHAR(4) IBM internal use only.
PART_INNER CHAR(1) IBM internal use only.
GRNU_KEYRNG CHAR(1) IBM internal use only.
OPEN_KEYRNG CHAR(1) IBM internal use only.
Start of changeAPPLNAMEEnd of change Start of changeVARCHAR(24) NOT NULL WITH DEFAULTEnd of change Start of changeThe name of the application plan for the row. Applies only to embedded EXPLAIN statements that are executed from a plan or to statements that are explained when binding a plan. A blank indicates that the column is not applicable.

Start of changeWhen the SQL statement is embedded in a compiled SQL function or native SQL procedure, this column is not used, and is blank.End of change

End of change
Start of changeSECTNOIEnd of change Start of changeINTEGER NOT NULL WITH DEFAULTEnd of change Start of changeThe section number of the statement. The value is taken from the same column in SYSPACKSTMT or SYSSTMT tables and can be used to join tables to reconstruct the access path for the statement. This column is applicable only for static statements. The default value of -1 indicates EXPLAIN information that was captured in DB2 9 or earlier.End of change
Start of changeSTRAW_MODELEnd of change Start of changeCHAR(1) NOT NULL WITH DEFAULTEnd of change Start of changeIBM internal use only.End of change
End program-specific programming interface information.