IMPLICIT_PDQ session environment option
Use the IMPLICIT_PDQ session environment option to allow the database server to determine the amount of memory allocated to a query, ignoring the explicit system default PDQPRIORITY environment variable setting.
IMPLICIT_PDQ environment option |--SET ENVIRONMENT IMPLICIT_PDQ--+-OFF-----------+--------------| +-ON------------+ '-'--integer--'-'
Element | Description | Restrictions | Syntax |
---|---|---|---|
integer | Nonnegative integer limiting the memory available to a query in the session as this percentage of the PDQPRIORITY value | Must be in the range 0 < integer < 101 | Quoted String |
Usage
Only systems that support PDQPRIORITY can reset the IMPLICIT_PDQ session environment variable, which can have the following values:
- OFF
- Disable IMPLICIT_PDQ. The server calculates no implicit PDQPRIORITY.
- ON
- The server automatically calculates an implicit PDQPRIORITY to use for each query.
- 'integer' or "integer"
- Use integer% of the server-calculated implicit PDQPRIORITY value for each query, where integer is a nonnegative whole number in the range 1-100.
Unless BOUND_IMPL_PDQ is also set, the database server ignores the explicit setting of the PDQPRIORITY environment variable when IMPLICIT_PDQ is set to ON or to "100".
- The PDQPRIORITY environment variable
- The most recent SET PDQPRIORITY statement of SQL
- The MAX_PDQPRIORITY configuration parameter
- The DS_TOTAL_MEMORY configuration parameter
- The BOUND_IMPL_PDQ session environment variable
SET ENVIRONMENT IMPLICIT_PDQ OFF;
SET ENVIRONMENT IMPLICIT_PDQ '75';
SET ENVIRONMENT IMPLICIT_PDQ ON;
To require the database server to use explicit PDQPRIORITY settings as the upper bound and optional lower bound of memory that it grants to a query, set the BOUND_IMPL_PDQ session environment option.
Star-join query execution plans require PDQ priority to be set. Setting the IMPLICIT_PDQ session environment option to enable implicit PDQ offers an alternative. If IMPLICIT_PDQ is set to ON for the session, then a star-join execution plan will be considered without explicit setting PDQPRIORITY. The SET ENVIRONMENT IMPLICIT_PDQ ON statement can be issued by a sysdbopen routine, so that users automatically enable implicit PDQ when they open the database. In this case, the query optimizer automatically considered a star join without explicit PDQPRIORITY setting by the user.
The IMPLICIT_PDQ functionality for a query requires at least LOW level distribution statistics on all tables in the query. If distribution statistics are missing for one or more tables in the query, the IMPLICIT_PDQ setting has no effect. This restriction also applies to star join queries, which are not supported in the case of missing statistics.
For information on creating a sysdbopen routine and on specifying the users whose sessions it will affect, see the topic Using SYSDBOPEN and SYSDBCLOSE Procedures. For information about the PDQPRIORITY environment variable, see the HCL Informix® Guide to SQL: Reference. For information about the DS_TOTAL_MEMORY and MAX_PDQPRIORITY configuration parameters, see the HCL Informix Administrator's Reference.