1 | Pointer to qualified query name | Input | CHAR(*) |
2 | Pointer to qualified database monitor table | Input | CHAR(*) |
3 | Pointer to the set of records returned | I/O | PTR(SPP) |
4 | Pointer to the return code structure | I/O | CHAR(*) |
The Visual Explain (QQQVEXPL) API is used to create a query graph that graphically displays the execution of an SQL statement. You can use this tool to see information about both static and dynamic SQL statements. QQQVEXPL supports the following types of SQL statements:
You can use this tool to better understand where the highest costs of your queries are taking place. You can improve query performance by:
You also can use the QQQVEXPL API to:
Input to the Visual Explain (QQQVEXPL) API is two structures. One contains the information the Visual Explain consolidator needs to uniquely identify which query within the database monitor table is to be explained. The other contains the name of the database monitor table. The database monitor table is a table that contains the records resulting from an execution of the STRDBMON command. Output from the Visual Explain (QQQVEXPL) API is a pointer to a stream of data located in user domain storage. This data contains the information necessary to create a pictorial view of how the specified query was implemented. It is up to the user to clean up the user domain storage. Also, output is a structure that contains an error return code, the number of entries in the output data, and the entry number of the Final Select ICON. To create the picture, the user starts with the entry of the Final Select ICON and works back to the beginning ICONs.
The format for the output records (or array entries) can be found in Output Format. Each record has a unique I CON number associated with it. The unique ICON number associates the records to a particular ICON. That is, all records with the same unique ICON number are associated with one specific ICON. For example, if the Final Select ICON has a unique ICON number of 12, then all records with a unique ICON number of 12 contain information about the Final Select ICON. The record immediately following the Final Select record is the record that tells the user how many ICONs (called child ICONs) are branched off the Final Select ICON. This record will have a record type of 11, which means it contains the number of child ICONs. The unique ICON number will match the unique ICON number of the Final Select ICON. Therefore, we know this record is telling us how many child ICONs there are for the Final Select ICON. The next records will contain the ICON number of the child ICONs. There will be one record for each child ICON and they will have a record type of 12 (unique ICON number of the child ICON). The user can find the record that corresponds to the child ICON by searching for the record that has a record type of 10 (new ICON) and a unique ICON number that matches the ICON number of the child ICON. Once the record of the child ICON is found, the process starts over again. All the records associated with that ICON (that is, that have the same unique ICON number) are read and processed. Any child ICONs are put on a stack or queue to be processed next. To see the list of possible record types, see Record Types.
The heart of the picture that is generated is the ICONs. In general, each ICON represents an operation performed during the execution of the query. It is up to the user to create and design the ICONs to be used. The connection between the output data and the user's ICONs is the label of the ICON that is returned within the new ICON record (record type of 10). The user is expected to match the non-translated label that is returned to the label that corresponds to the specific ICON. The non-translated ICON label is returned in the character output field. The translated ICON label is returned in the column heading field. For a list of ICON labels, see ICON Labels. For a detailed description of the operation represented by each ICON, see Database Performance and Query Optimization in the iSeries Information Center.
A pointer to a variable length structure that is used to determine the query to be explained. The structure contains two variables:
Type | Description |
---|---|
BINARY(2) | Length of the structure that contains the qualified query. |
CHAR(*) | Structure used to determine the specific query to
be explained. This structure contains seven variables. Generally, these
variables are set to the same value as the corrsponding variables in the QQJFLD
field within the QQQ1000 record of the query to be explained. One way to find
the appropriate QQQ1000 record within the database monitor table is to view the
SQL statement text (field QQ1000) and compare it to the SQL statement text of
the query you wish to have explained.
|
A pointer to a CHAR(72) structure containing the name of the database monitor table and other optional variables. The structure contains nine variables:
Type | Variable | Description |
---|---|---|
CHAR(10) | Monitor table name | Name of the database monitor table that contains the query to be explained. |
CHAR(10) | Monitor library name | Library of the database monitor table. |
CHAR(3) | Date format | A specific date format or blanks. I f blank, the
date format of the current job will be extracted and used. Possible date
formats are:
|
CHAR(1) | Date separator | A specific date separator or J. If J, the date
separator of the current job will be extracted and used. Possible date
separators are:
|
CHAR(3) | Time format | A specific time format. It must be one of the
following values:
|
CHAR(1) | Time separator | A specific time separator or J. If J, the time
separator of the current job will be extracted and used. Possible time
separators are:
|
CHAR(1) | Decimal point | A specific decimal point, J, or blank. If J or
blank, the decimal point of the current job will be extracted and used.
Possible decimal points are:
|
CHAR(3) | Language ID | A specific language ID, J, or blanks. If J or blanks, the language ID of the current job will be extracted and used. Currently, the language ID is not used and it is recommended this value be set to blanks. |
CHAR(40) | Reserved | Open for future expansion. These should be set to hexadecimal zeros. |
A pointer to data that can be viewed as a set of records or multiple entries within an array. This data is used to determine the pictorial representation of the query. The user can retrieve the data in any manner. One suggested method is to view the returned data as a set of records and use the SET RESULTS SETS command within an SQL procedure to retrieve the output data. To see the format of the output data, see Output Format. Once finished, it is up to the user to deallocate or destroy the space containing the output data.
Pointer to a CHAR(32) structure that contains the following output information:
Type | Variable | Description |
---|---|---|
BINARY(4) | Error code | Error code returned from the Visual Explain consolidator. See Error Codes for a list of possible return codes. |
BINARY(4) | Number of records returned | Number of records (or array entries) returned. |
BINARY(4) | Final select record | Record number (or array entry), within the set of records returned, of the Final Select ICON. |
BINARY(4) | Reserved | Currently not used. |
BINARY(4) | Reserved | Currently not used. |
BINARY(4) | Reserved | Currently not used. |
BINARY(4) | Reserved | Currently not used. |
BINARY(4) | Reserved | Currently not used. |
This function is threadsafe, but not thread-enabled. Database monitor data is collected in the threaded process.
The format for each record (or each array entry) in the output data is as follows:
Offset | Type | Field | |
---|---|---|---|
Dec | Hex | ||
0 | 0 | BINARY(4) | Unique ICON number. Each icon in the picture is given a unique number. This value is what ties the records together; that is, all records with the same unique ICON number are associated with that specific ICON. |
4 | 4 | BINARY(4) |
Record type or ID.
Each record can be one of many possible types. See Record Types for the list of possible record types. A record type of 10 (new ICON) indicates another ICON was added to the picture and its unique number can be found in the unique ICON number field. |
8 | 8 | BINARY(4) | Context type. The type of context with which this record is associated. A context is a group of values used for a special purpose. See Context Types for the list of possible contexts. |
12 | C | BINARY(4) | Context order. If this record is associated with a context type, this is the order, or position, within the context for the value. For example, table name would have a context order of two since it is the second variable of information associated with the table description context. Table library would have a context order of one. |
16 | 10 | BINARY(4) | Flyover order. The order, or position, within the flyover information for this value. The flyover information is the information that is shown when the cursor is held over a particular ICON and a window pops up showing some of the data attributes associated with that ICON. |
20 | 14 | BINARY(4) | Arrow order. The order, or position, within the arrow information for this value. The arrow information is the information shown on the arrows that connect the ICONs. |
24 | 18 | BINARY(4) | Arrow value. The value shown on the arrow that connects the ICONs together. Generally, this value is either the estimated number of rows or the estimated processing time. |
28 | 1C | BINARY(4) | Format value. Used to highlight or format output data. For example, all header lines within the data attributes will have a format value associated with them. This identifies all the header records and allows users the option to format these specific records in the same manner. |
32 | 20 | CHAR(1) | Specifies (yes or no) if the data attributes associated with the ICON are returned in a predetermined (numerical) order. This variable is set only for the record whose context type is new ICON. This variable is pertinent only to those users who wish to show the data attributes in the same order that the Visual Explain consolidator returned them. Users who wish to choose their own order of data attributes can simply ignore this indicator. |
33 | 21 | CHAR(1) | Type of output data. The type of output data is either "C", "N", or "X". It is the field that contains the character output ("C") or the field that contains the numeric output ("N"). It tells the user which field to look in for the output data. A value of "X" indicates the character output exceeds 1000 bytes and the remaining character output is found on the following array entry. |
34 | 22 | BINARY(2) | Length, in bytes, of the column heading. |
36 | 24 | CHAR(128) | Column heading. The description, or heading, of the output data. For a record type of new ICON, this will be the label of the ICON. For a data attribute record type, this will be a description of the data attribute; for example, Table name. |
164 | A4 | BINARY(4) | Reserved. |
168 | A8 | BINARY(4) | Reserved. |
172 | AC | BINARY(4) | Reserved. |
176 | B0 | BINARY(2) | Length, in bytes, of the character output
data. It is set only if the type of output is "C" or "X". |
178 | B2 | CHAR(1000) | Character output. The character output could be many things, depending on the record type. For a new ICON record, the character output is the label associated with the ICON. For a data attribute, the character output is the value for that data attribute. For example, if the column heading was Table name, then the character output would be TABLE001. It is set only if the type of output is "C" or "X". |
1178 | 49A | BINARY(4) | Numeric output. The numeric output is used only for a record that has a numeric output (that is, the child ICON record type or number of child ICONs record type). Generally, most records (especially data attribute records) have their output converted to character format. It is set only if the type of output is "N". |
1182 | 49E | BINARY(2) | Reserved. |
To determine which ICON should be shown, look at the non-translated ICON label that is returned in the character output field. Compare this text string to the text string associated with the user-generated ICONs. The ICON labels that may be returned are shown below. For a detailed description of the operation represented by the ICON, refer to Database Performance and Query Optimization in the iSeries Information Center.
ICON Label | Description |
---|---|
Table Scan | All rows in the table were paged in and selection criteria was applied against each row. Only those rows meeting the selection criteria were retrieved. To get the result in a particular sequence, you must specify the ORDER BY clause. |
Table Scan, Parallel | A table scan access method was used and multiple tasks were used to select the rows in parallel. The table was partitioned and each task was given a portion of the table with which to work. |
Index Scan - Key Selection | All entries of the index were paged in. (This is different from key positioning, where only a specified range of key entries were paged in.) Any selection criteria, whose predicates match the key columns of the index, were applied against the index entries. Only selected key entries were used to select rows from the corresponding table data. |
Index Scan - Key Selection, Parallel | Multiple tasks were used to perform key selection in parallel. The table was partitioned and each task was given a portion of the table with which to work. |
Index Scan - Key Positioning | |
Index Scan - Key Positioning, Parallel | Multiple tasks were used to perform the key positioning in parallel. The range of key values was determined by the selection criteria whose predicates matched the key columns of the index. The number of selected key entries were further reduced by the use of index key selection or derived selection after key positioning was completed. Only selected key entries were used to select rows from the corresponding table data. |
Skip Sequential Table Scan | A bitmap was used to determine which rows would be selected. No CPU processing was done on rows not selected and I/O was minimized by bringing in only those pages that contained rows to be selected. |
Skip Sequential Table Scan, Parallel | A skip sequential table scan access method was used and multiple tasks were used to select the rows in parallel. The table was partitioned and each task was given a portion of the table with which to work. |
Encoded Vector Index | Access was provided to a database file by assigning codes to distinct key values, and then representing these values in an array (vector). The elements of the array can be 1, 2, or 4 bytes in length, depending on the number of distinct values that must be represented. Because of their compact size and relative simplicity, encoded vector indexes provide for faster scans that can be more easily processed in parallel. |
Encoded Vector Index, Parallel | Multiple tasks were used to perform the encoded vector index selection in parallel. T his allows for faster scans that can be more easily processed in parallel. The elements of the array can be 1, 2, or 4 bytes in length, depending on the number of distinct values that must be represented. Because of their compact size and relative simplicity, encoded vector indexes provide for faster scans and can be more easily processed in parallel. |
Dynamic Bitmap | A bitmap was generated dynamically from an
existing index. It then was used to determine which rows were to be retrieved
from the table. To improve performance, dynamic bitmaps can be used in
conjunction with any of the following access methods:
|
Temporary Table | A temporary table was required to contain the intermediate results of the query, or the queried table could not be queried as it currently exists and a temporary table was created to replace it. |
Temporary Hash Table | A temporary hash table was created to perform hash processing. |
Temporary Index | A temporary hash table was created to perform hash processing. |
Hash Join | A temporary hash table was created to perform the join. T he tables queried were joined together using a hash join implementation where a hash table was created for each secondary table. Therefore, matching values were hashed to the same hash table entry. |
Nested Loop Join | Queried tables were joined together using a nested loop join implementation. Values from the primary file were joined to the secondary file using an index whose key columns matched the specified join columns. |
Index Grouping | Selected rows were grouped or summarized. Therefore, duplicate rows within a group were eliminated. |
Hash Grouping | Selected rows were grouped or summarized. Therefore, duplicate rows within a group were eliminated. |
Sort | Selected rows were sorted using a sort algorithm. |
Union Merge | The results of multiple subselects were merged or combined into a single result. |
Subquery Merge | The results of multiple subselects were merged or combined into a single result. |
Bitmap Merge | Multiple bitmaps were merged or combined to form a final bitmap. The merging of the bitmaps simulates boolean logic (AND/OR selection). |
Distinct | Duplicate rows in the result were prevented. You can specify that you do not want any duplicates by using the DISTINCT keyword, followed by the selected column names. |
Select | A point in the query where multiple results are brought together into a single result set. For example, if a query is the union of two different select statements, at the point before the union occurs, the Select icon indicates the points where the select statements finished and the union is about to occur. |
Final Select | The original text and summary information of how the query was implemented. |
Insert | The original text and summary information of how the query was implemented. |
Update | The original text and summary information of how the query was implemented. |
Delete | The original text and summary information of how the query was implemented. |
Unknown | The operation performed is not recognized by Visual Explain. For example, the system may support a new function that is not yet supported by Visual Explain. |
BINARY(4) A context is a group of values used for a special purpose.
Context | Type | Description |
---|---|---|
21 | Table Description | The variables needed to retrieve
information about the table. These variables are:
|
22 | Index Description | The variables needed to retrieve information
about the index. These variables are:
|
23 | Create Index Attributes | The information needed to create an index. This
includes:
|
24 | Environment Attributes | Information about the environment when the query
was executed. This includes:
|
BINARY(4) The formatting value is used to format or highlight similar output data. For example, all header lines within the data attribute output will have a format value associated with them. This allows the user the option to identify and format all these particular header lines in the same manner.
Format | Type | Description |
---|---|---|
8 | Index Advised | Data attributes associated with the index advised function. |
16 | Header | Header line within the data attribute output. |
Generally, record types with a value less than 100 are used to construct the picture. For example, they determine which ICONs are connected together. Record types with a value greater than 1000 are data attributes (information associated with a particular ICON). For a detailed description of the data attributes, see Database Performance and Query Optimization in the iSeries Information Center.
Record Type | Description |
---|---|
10 | New ICON. |
11 | Number of child ICONs. |
12 | Unique ICON number of the child ICON. |
111 | Heading only, no output data. |
1010 | Name of the index created. |
1011 | Library of the index created. |
1012 | Name of the temporary table created. |
1013 | Library of the temporary table created. |
1014 | Name of the temporary hash table created. |
1015 | Library of the temporary hash table created. |
1031 | Library of the table being queried. |
1032 | Name of the table being queried. |
1033 | Member name of the table being queried. |
1034 | Long name of the table being queried. |
1035 | Long library of the table being queried. |
1041 | Library of the base table. |
1042 | Name of the base table (underlying physical table). |
1043 | Member name of the base table. |
1044 | Long name of the base table. |
1045 | Long library of the base table. |
1051 | Library of the index used. |
1052 | Name of the index used. |
1053 | Member name of the index used. |
1054 | Long name of the index used. |
1055 | Long library of the index used. |
1102 | Time when the database monitor record was created. |
1104 | Timestamp of when the SQL statment started. |
1106 | Timestamp of when the SQL statement ended. |
1108 | Amount of time spent during optimization, in seconds. |
1110 | Amount of time spent creating the cursor (open data path), in seconds. |
1112 | Total time for the SQL statement, in milliseconds. |
1114 | Total time for the SQL statement, in microseconds. |
1120 | Statement OPEN time, in milliseconds. |
1122 | Statement FETCH time, in milliseconds. |
1124 | Statement CLOSE time, in milliseconds. |
1220 | Statement number. |
1222 | Statement function. |
1224 | Statement operation. |
1226 | Statement type. |
1228 | Statement name. |
1230 | Statement outcome. |
1232 | SQL return code. |
1234 | SQLSTATE. |
1240 | Cursor name. |
1242 | Package name. |
1244 | Package library. |
1250 | Number of rows returned. |
1252 | Number of rows fetched. |
1260 | SQL statement text. |
1306 | CLOSQLCSR value. |
1308 | ALWCPYDTA value. |
1310 | Pseudo open. |
1312 | Pseudo close. |
1313 | Hard close reason code. |
1314 | Open data path implementation. |
1320 | Dynamic replan reason code. |
1324 | Dynamic replan reason subcode. |
1326 | Timestamp of the last replan. |
1330 | Parse required. |
1332 | Data conversion. |
1334 | Level of commitment control. |
1336 | Blocking enabled. |
1338 | Delay preperation. |
1339 | Statement is explainable. |
1340 | Type of naming convention. |
1342 | Type of dynamic execution. |
1344 | Optimize LOB. |
1350 | User profile, static. |
1352 | User profile, dynamic. |
1354 | Default collection. |
1360 | Procedure name on the call. |
1362 | Procedure library on the call. |
1364 | Directory path. |
2012 | Estimated processing time, in seconds. |
2016 | Cumulative processing time, in seconds. |
2018 | Total number of rows in the table. |
2020 | Size of the table. |
2042 | Estimated number of rows selected. |
2044 | Estimated number of joined rows. |
2046 | Join position. |
2048 | Original file position. |
2050 | Join method. |
2052 | Join type. |
2054 | Join operator. |
2056 | Join fanout. |
2058 | Number of files joined. |
2070 | I/O or CPU bound. |
2080 | Reason code. |
2110 | Index scan, key positioning. |
2112 | Number of key columns for key positioning. |
2114 | Estimated number of entries selected through key positioning. |
2116 | Index scan, key selection. |
2118 | Estimated number of entries selected through key selection. |
2122 | Index only access. |
2124 | Index fits into main memory. |
2126 | Memory pool size. |
2128 | Memory pool ID. |
2130 | Skip key processing. |
2140 | Type of index. |
2141 | Index usage. |
2142 | Number of entries in the index. |
2144 | Number of unique values in the index. |
2146 | Percent overflow for the index. |
2148 | Vector size of the index. |
2150 | Size of the index used. |
2152 | Page size of the index used. |
2154 | Reason code of why index was used. |
2160 | Index is a constraint. |
2162 | Name of the constraint. |
2182 | Data space selection exists. |
2184 | Skip sequential processing was used. |
2190 | Reason code for the table scan processing. |
2220 | Index is a constraint. |
2222 | Name of the constraint. |
2224 | Data space selection exists. |
2226 | Skip sequential processing was used. |
2320 | The query optimizer timed out. |
2322 | Reason code of why the index was not used. |
2324 | List of indexes which the query optimizer considered. |
2346 | The query optimizer is advising an index to be created. |
2348 | The number of key columns within the index advised that will use key positioning. |
2350 | The list of key columns for the index advised. |
2380 | Was parallel pre-fetch used. |
2382 | Was parallel pre-load used. |
2384 | Parallel degree requested by the query optimizer. |
2386 | Parallel degree used. |
2388 | Reason code why the parallel degree requested by the optimizer was not used. |
2402 | Number of entries in the temporary index created. |
2404 | Page size of the temporary index created. |
2406 | Row size of the temporary index created. |
2408 | Was an alternate collating sequence table used to create the temporary index. |
2409 | Name of the alternate collating sequence table used to create the temporary index. |
2410 | Library of the alternate collating sequence table used to create the temporary index. |
2412 | Is the temporary index that was created reusable. |
2414 | Is the temporary index that was created a sparse or select/omit index. |
2416 | Type of index that was created. |
2418 | Was the index created as a permanent object. |
2420 | Was the index created from another index. |
2422 | Parallel degree requested by query optimizer for creation of the index. |
2424 | Parallel degree used during creation of the index. |
2426 | Reason code why the parallel degree requested by the optimizer for the index creation was not used. |
2428 | Reason code why a temporary index was created. |
2430 | Key columns used when creating the temporary index. |
2510 | Number of rows within the temporary table. |
2512 | Size of the temporary table. |
2514 | Row size of the temporary table. |
2516 | Default values exist in temporary table. |
2518 | Temporary table created is a temporary result table. |
2520 | Temporary table created is a distributed table. |
2522 | Nodes where the temporary distributed table was created. |
2524 | Reason code why a temporary table was created. |
2550 | Number of rows within the temporary hash table. |
2552 | Size of the temporary hash table. |
2554 | Row size of the temporary hash table. |
2556 | Key size of the temporary hash table. |
2558 | Element size of the temporary hash table. |
2560 | Memory pool size where temporary hash table was created. |
2562 | Memory pool ID where temporary hash table was created. |
2563 | Reason code why a temporary hash table was created. |
2564 | Columns used when creating the temporary hash table. |
2612 | Columns used for dataspace selection. |
2614 | Was derived selection used. |
2616 | Columns used for derived selection. |
2620 | Columns used for key positioning. |
2622 | Columns used for key selection. |
2624 | Columns used for join selection. |
2626 | Columns used for ordering. |
2628 | Columns used for grouping. |
2810 | Type of grouping implementation. |
2812 | Does HAVING selection exist. |
2814 | Was the HAVING selection converted into WHERE seletion. |
2816 | Estimated number of groups. |
2818 | Average number of rows within each group. |
2820 | Grouping columns. |
2822 | MIN columns. |
2824 | MAX columns. |
2826 | SUM columns. |
2828 | COUNT columns. |
2830 | AVERAGE columns. |
2910 | Subselect number of the inner subselect. |
2912 | Nested level of the inner subselect. |
2914 | Subselect number of the materialized view containing the inner subselect. |
2916 | Nested level of the materialized view containing the inner subselect. |
2920 | Subquery operator. |
2922 | Correlated columns exist. |
2924 | List of the correlated columns. |
3020 | Size of the bitmap created. |
3022 | Number of bitmaps created. |
3024 | IDs of the bitmaps created. |
3026 | IDs of the bitmaps that were merged together. |
4020 | System name. |
4022 | Job name. |
4024 | Job user. |
4026 | Job number. |
4028 | Unique query count. |
4032 | Subselect count. |
4040 | Relational database name. |
4042 | Thread ID. |
4044 | Unique refresh count. |
4046 | Subselect nested level. |
4048 | Materialization number of the subselect. |
4050 | Nested level of the subselect that was materialized. |
4052 | Materialization number for the decomposed subselect. |
7008 | List of the host variable values. |
7009 | Type of host variable implementation. |
7010 | Type of processing for the specified ordering. |
7011 | Name of the index used to satisfy ordering. |
7012 | Library of the index used to satisfy ordering. |
7013 | Long name of the index used to satisfy ordering. |
7014 | Long library of the index used to satisfy ordering. |
7020 | Type of processing for the specified grouping. |
7021 | Name of the index used to satisfy grouping. |
7022 | Library of the index used to satisfy grouping. |
7023 | Long name of the index used to satisfy grouping. |
7024 | Long library of the index used to satisfy grouping. |
7026 | Query contains UNION. |
7027 | Query contains subquery (subselect). |
7030 | Type of join processing. |
7032 | Query contains distinct. |
7034 | Query contains distributed tables. |
7036 | List of the nodes containing the distributed tables. |
7050 | Quick summary of the implementation. |
8014 | Memory pool size. |
8016 | Memory pool ID. |
8020 | Date format. |
8022 | Date separator. |
8024 | Time format. |
8026 | Time separator. |
8028 | Decimal point. |
8030 | Name of the sort sequence table associated with the query. |
8032 | Library of the sort sequence table associated with the query. |
8034 | Language ID. |
8036 | Country or region ID. |
8040 | Query INI table name. |
8042 | Query INI library. |
8044 | Maximum query time limit. |
8046 | Parallel options. |
8048 | Maximum number of tasks. |
8050 | Apply CHGQRYA options to remote systems. |
8052 | Asynchronous job usage. |
8054 | Join order was forced. |
8056 | Print debug messages. |
8060 | Parameter marker conversion. |
8062 | User defined function (UDF) time limit. |
8064 | Optimizer limitations. |
Possible error codes returned from the Visual Explain consolidator are:
Error Code | Description |
---|---|
0 | Successful. |
71 | Invalid date format. |
72 | Invalid date separator. |
73 | Invalid time format. |
74 | Invalid time separator. |
75 | Invalid decimal point. |
90 | No records in the specified database monitor table. |
91 | Failure trying to read records from specified database monitor table. |
92 | Query too complex to be explained. |
93 | Specified database monitor table not found. |
99 | Query function not supported. |
1000 | Missing or invalid QQQ1000 record within the database monitor table. |
3000 | Missing or invalid QQQ3000 record within the database monitor table. |
3001 | Missing or invalid QQQ3001 record within the database monitor table. |
3002 | Missing or invalid QQQ3002 record within the database monitor table. |
3003 | Missing or invalid QQQ3003 record within the database monitor table. |
3004 | Missing or invalid QQQ3004 record within the database monitor table. |
3014 | Missing or invalid QQQ3014 record within the database monitor table. |
3021 | Missing or invalid QQQ3021 record within the database monitor table. |
3022 | Missing or invalid QQQ3022 record within the database monitor table. |
3023 | Missing or invalid QQQ3023 record within the database monitor table. |
3025 | Missing or invalid QQQ3025 record within the database monitor table. |
3027 | Missing or invalid QQQ3027 record within the database monitor table. |
3028 | Missing or invalid QQQ3028 record within the database monitor table. |
0nnn | SQL error code (converted to a positive value) that occurred while reading records from the specified database monitor table. |
Top | Database and File APIs | APIs by category |