SET PDQPRIORITY 语句

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 内存量。