SET PDQPRIORITY 语句启用一应用来在例程之内动态地设置查询优先级别。SET PDQPRIORITY 语句是对 SQL 的 ANSI/ISO 标准的扩展。
语法
元素 |
描述 |
限制 |
语法 |
resources
|
指定查询优先级别以及处理该查询的资源的百分率的整数 |
可取值从 -1 到 100。另请参阅 分配数据库服务器资源。
|
文字的数值
|
用法
SET PDQPRIORITY 语句覆盖 PDQPRIORITY 环境变量(但优先权低于 MAX_PDQPRIORITY 配置参数)。SET PDQPRIORITY 对例程的作用域是本地,且不影响同一会话内的其他例程。当发出此语句的例程终止时,该设置恢复为系统缺省值。
将 PDQ 优先级设置为小于 100 除以准备好的语句的最大数目之商的值。例如,如果两个准备好的语句是活动的,则您应设置 PDQ 优先级小于
50。
例如,假设 DBA 设置 MAX_PDQPRIORITY 参数为 50。那么用户输入下列 SET PDQPRIORITY 语句来将查询优先级别设置为资源的 80%:
SET PDQPRIORITY 80;
当它处理该查询时,数据库服务器使用 MAX_PDQPRIORITY 值来将用户设置的查询优先级别作为因子。数据库服务器静静地以优先级别 40 处理该查询。此优先级别表示用户指定的资源的
80% 的 50%。
SET PDQPRIORITY 语句支持下列关键字。
- 关键字
- 作用
- DEFAULT
- 使用 PDQPRIORITY 环境变量的设置
- LOW
- 并行地从分片的表获取数据值。(在
GBase 8s
中,当您指定 LOW
时,数据库服务器不适用于并行机制的其他形式。)
- OFF
- 关闭 PDQ(仅限于
GBase 8s
)。数据库服务器不适用于并行机制。如果您既不使用
PDQPRIORITY 环境变量,也不使用 SET PDQPRIORITY 语句,则 OFF 为缺省值。
- HIGH
- 基于包括可用的处理器数目、正在查询的表的分片、查询的复杂度以及其他因素,数据库服务器确定一恰当的 PDQPRIORITY 值。当在未来的版本中指定 HIGH 时,
GBase
保留更改查询的性能行为的权利。
对于分配 PDQ 优先级的方法的优先级
对于受 PDQPRIORITY 影响的操作中的可用内存,数据库服务器可分配的最大内存量受您的系统可用物理内存的限制,也受这些参数设置(按升序排列)的限制:
- PDQPRIORITY 环境变量
- 最近的 SQL 的 SET PDQPRIORITY 语句
- MAX_PDQPRIORITY 配置参数
- DS_TOTAL_MEMORY 配置参数
- BOUND_IMPL_PDQ 会话环境变量
当并发查询正在运行时,DS_MAX_QUERIES 配置参数设置还可限制新的查询的可用 PDQ 内存量。