ALTER THRESHOLD 语句

ALTER THRESHOLD 语句可更改阈值的定义。

调用

此语句可以嵌入在应用程序中,也可通过动态 SQL 语句来发出。 它是一个可执行语句,仅当 DYNAMICRULES 运行行为对于程序包有效时才能动态编译 (SQLSTATE 42509)。

权限

语句授权标识所拥有的特权必须至少包括下列其中一项权限:
  • SQLADM 权限(仅当每个更改子句是 COLLECT 子句时)
  • WLMADM 权限
  • DBADM 权限

语法

Read syntax diagramSkip visual syntax diagramALTER THRESHOLDthreshold-name1WHENalter-threshold-predicatePERFORM ACTIONalter-threshold-exceeded-actionsEXCEEDEDalter-threshold-exceeded-actionsENABLEDISABLE
alter-threshold-predicate
Read syntax diagramSkip visual syntax diagramTOTALMEMBERCONNECTIONS>integer-valueTOTALSCMEMBERCONNECTIONS>integer-valueAND QUEUEDCONNECTIONS>integer-valueAND QUEUEDCONNECTIONS UNBOUNDEDCONNECTIONIDLETIME>integer-valueDAYDAYSHOURHOURSMINUTEMINUTESCONCURRENTWORKLOADOCCURRENCES>integer-valueCONCURRENTWORKLOADACTIVITIES>integer-valueCONCURRENTDBCOORDACTIVITIES>integer-valueAND QUEUEDACTIVITIES>integer-valueAND QUEUEDACTIVITIES UNBOUNDEDESTIMATEDSQLCOST>bigint-valueSQLROWSRETURNED>integer-valueACTIVITYTOTALTIME>integer-valueDAYDAYSHOURHOURSMINUTEMINUTESSECONDSUOWTOTALTIME>integer-valueDAYDAYSHOURHOURSMINUTEMINUTESSECONDSSQLTEMPSPACE>integer-valueKMGAGGSQLTEMPSPACE>integer-valueKMGSQLROWSREAD>bigint-valueCHECKING EVERYinteger-valueSECONDSECONDSSQLROWSREADINSC>bigint-valueCHECKING EVERYinteger-valueSECONDSECONDSCPUTIME>integer-valueHOURHOURSMINUTEMINUTESSECONDSECONDSCHECKING EVERYinteger-valueSECONDSECONDSCPUTIMEINSC>integer-valueHOURHOURSMINUTEMINUTESSECONDSECONDSCHECKING EVERYinteger-valueSECONDSECONDSACTIVITYTOTALRUNTIME>integer-valueDAYDAYSHOURHOURSMINUTEMINUTESSECONDSACTIVITYTOTALRUNTIMEINALLSC>integer-valueDAYDAYSHOURHOURSMINUTEMINUTESSECONDS2DATATAGINSCINNOT IN(,integer-constant)
alter-threshold-exceeded-actions
Read syntax diagramSkip visual syntax diagram1COLLECT ACTIVITY DATAalter-collect-activity-data-clauseNONESTOP EXECUTIONCONTINUEFORCE APPLICATIONremap-activity-action
alter-collect-activity-data-clause
Read syntax diagramSkip visual syntax diagramON COORDINATORMEMBERON ALLMEMBERSWITHOUT DETAILSWITH,DETAILS3SECTIONAND VALUES
remap-activity-action
Read syntax diagramSkip visual syntax diagramREMAP ACTIVITY TOservice-subclass-name NO EVENT MONITOR RECORDLOG EVENT MONITOR RECORD
Notes:
  • 1 The same clause must not be specified more than once.
  • 2 Each data tag value can be specified only once.
  • 3 The DETAILS keyword is the minimum to be specified, followed by the option separated by a comma.

描述

threshold-name
标识要更改的阈值。 这是一部分名称。 它是普通或定界 SQL 标识。 该名称必须唯一地标识当前服务器上的现有阈值 (SQLSTATE 42704)。
WHEN alter-threshold-predicate 或 WHEN EXCEEDED
将阈值谓词条件中的现有上限值替换为新的上限值。 阈值的条件不能更改为其他条件。
PERFORM ACTION
更改阈值谓词条件的值时,指定阈值超出操作保持不变。
EXCEEDED
指定此项以保留最初为该变更阈值指定的相同阈值谓词。
alter-threshold-predicate
TOTALMEMBERCONNECTIONS > integer-value
此条件定义可以在 成员上并发运行的协调程序连接数的上限。 此值可以为零或任何正整数 (SQLSTATE 42820)。 零值表示将阻止建立任何新的协调程序连接。 所有当前正在运行或排队的连接都将继续运行。
TOTALSCMEMBERCONNECTIONS > integer-value
此条件定义可以在特定服务超类中的 成员 上并发运行的协调程序连接数的上限。 此值可以为零或任何正整数 (SQLSTATE 42820)。 零值表示将阻止任何新连接加入服务类。 所有当前正在运行或排队的连接都将继续运行。
AND QUEUEDCONNECTIONS > integer-value 或 AND QUEUEDCONNECTIONS UNBOUNDED
指定在超出最大协调程序连接数时的队列大小。 此值可以为零或任何正整数 (SQLSTATE 42820)。 零值表示没有排队的协调程序连接。 指定 UNBOUNDED 会将超出指定的最大协调程序连接数的每个连接排队,并且从不执行 threshold-exceeded-actions
CONNECTIONIDLETIME > integer-value DAY | DAYS | HOUR | HOURS | MINUTE | MINUTES
此条件定义数据库管理器允许连接保持空闲状态的时间量的上限。 此值可以是任何正整数(非零)(SQLSTATE 42820)。 使用有效的持续时间关键字来指定 integer-value 的相应时间单位。 此条件在协调程序 成员上实施。

如果您使用 CONNECTIONIDLETIME 阈值指定 STOP EXECUTION 操作,那么超过阈值时将断开该应用程序的连接。 应用程序对访问数据服务器的任何后续尝试都将接收 SQLSTATE 5U026,因为应用程序不再连接到数据服务器

此阈值的最大值为 2 147 483 640 秒。 如果指定的任何值所对应的秒数超出 2 147 483 640 秒,那么会将值设置为此秒数。

CONCURRENTWORKLOADOCCURRENCES > integer-value
此条件定义每个 成员上工作负载的并发出现次数的上限。 此值可以是任何正整数(非零)(SQLSTATE 42820)。
CONCURRENTWORKLOADACTIVITIES > integer-value
此条件定义每个 成员上的工作负载的并发协调程序活动数和嵌套活动数的上限。 此值可以是任何正整数(非零)(SQLSTATE 42820)。
每个嵌套活动都必须满足以下条件:
  • 它必须是已识别的协调程序活动。 任何不属于已识别的活动类型的嵌套协调程序活动都不计入在内。 同样,嵌套子代理程序活动(例如,远程节点请求)也不计入在内。
  • 必须从用户逻辑中直接调用这类活动,例如,发出 SQL 语句的用户编写过程。

内部 SQL 活动(例如,通过设置约束或刷新具体化查询表而启动的活动)也不计入此阈值,因为它们是由数据库管理器启动的,而不是由用户逻辑直接调用的。

CONCURRENTDBCOORDACTIVITIES > integer-value
此条件定义可同时在指定域中的所有 成员 上运行的可识别数据库协调程序活动数的上限。 此值可以为零或任何正整数 (SQLSTATE 42820)。 零值表示将阻止执行任何新的数据库协调程序活动。 所有当前正在运行或排队的数据库协调程序活动将继续执行。 此条件将跟踪所有活动,但以下项除外:
  • CALL 语句不受此阈值控制,但在被调用例程内启动的所有嵌套子活动都受此阈值控制。 匿名块和自治例程被归类为 CALL 语句。
  • 用户定义的函数受此阈值控制,但嵌套在用户定义函数中的子活动不受此阈值控制。 如果在用户定义的函数内调用自治例程,那么自治例程及其任何子活动都不受阈值控制。
  • 用于调用 CALL 语句的触发器操作和这些 CALL 语句的子活动不受此阈值控制。 可导致激活触发器的 INSERT、UPDATE 或 DELETE 语句会继续受阈值控制。
重要信息: 在使用 CONCURRENTDBCOORDACTIVITIES 阈值之前,请确保熟悉这些阈值可能对数据库系统产生的影响。

有关更多信息,请参阅 CONCURRENTDBCOORDACTIVITIES 阈值

AND QUEUEDACTIVITIES > integer-value 或 AND QUEUEDACTIVITIES UNBOUNDED
指定在超出最大数据库协调程序活动数时的队列大小。 此值可以为零或任何正整数 (SQLSTATE 42820)。 零值表示没有排队的数据库协调程序活动。 指定 UNBOUNDED 会将超出指定的最大数据库协调程序活动数的每个数据库协调程序活动排队,并且从不执行 threshold-exceeded-actions
注: 如果为排队阈值指定了阈值操作 CONTINUE ,那么将有效使队列大小不受限制,而不考虑为队列大小指定的任何硬值。
ESTIMATEDSQLCOST > bigint-value
此条件定义活动的优化器分配成本(以 timeron 为单位)的上限。 此值可以是任何正整数(非零)(SQLSTATE 42820)。 此条件在协调程序 成员上实施。 此条件跟踪的活动包括:
  • 类型为数据操作语言 (DML) 的协调程序活动。
  • 从用户逻辑中调用的嵌套 DML 活动。 因此,此条件将不跟踪数据库管理器可通过内部 SQL 启动的 DML 活动(除非它们的成本包含在父项的估算中,在这种情况下,它们是被间接跟踪的)。
SQLROWSRETURNED > integer-value
此条件定义从应用程序服务器返回到客户机应用程序的行数的上限。 此值可以是任何正整数 (非零) (SQLSTATE 42820)。此条件是在协调程序 成员上实施的。 此条件跟踪的活动包括:
  • 类型为 DML 的协调程序活动。
  • 从用户逻辑中派生的嵌套 DML 活动。 数据库管理器通过内部 SQL 启动的活动不受此条件影响。
从过程中返回的结果集将被单独视为独立活动。 将不会汇总过程本身返回的行。
ACTIVITYTOTALTIME > integer-value DAY | DAYS | HOUR | HOURS | MINUTE | MINUTES | SECONDS
此条件定义数据库管理器允许活动执行的时间量的上限(包括活动的排队时间)。 此条件的定义域必须是 DATABASE、工作操作(工作操作定义域的阈值是使用 CREATE WORK ACTION SET 或 ALTER WORK ACTION SET 语句创建的,并且工作操作集必须应用于工作负载或数据库)、SERVICE SUPERCLASS、SERVICE SUBCLASS 或 WORKLOAD,并且执行作用域必须是 DATABASE(SQLSTATE 5U037)。 在协调程序 成员上逻辑上强制实施此条件。

指定的 integer-value 必须是大于零的整数 (SQLSTATE 42820)。 使用有效的持续时间关键字来指定 integer-value 的相应时间单位。 如果指定的时间单位为 SECONDS,那么该值必须是 10 的倍数 (SQLSTATE 42615)。 可针对此阈值指定的最大值为 2 147 483 640 秒。 如果任何值(使用 DAY、HOUR、MINUTE 或 SECONDS 时间单位)对应的秒数大于最大值,那么将返回一个错误 (SQLSTATE 42615)。

UOWTOTALTIME > integer-value DAY | DAYS | HOUR | HOURS | MINUTE | MINUTES | SECONDS
此条件定义数据库管理器允许工作单元执行的时间量的上限。 此值可以是任何非零正整数 (SQLSTATE 42820)。 使用有效的持续时间关键字来指定 integer-value 的相应时间单位。 如果指定的时间单位为 SECONDS,那么该值必须是 10 的倍数 (SQLSTATE 42615)。 将在协调程序成员中执行此条件。

可针对此阈值指定的最大值为 2 147 483 640 秒。 如果任何值(使用 DAY、HOUR、MINUTE 或 SECONDS 时间单位)对应的秒数大于最大值,那么将返回一个错误 (SQLSTATE 42615)。

SQLTEMPSPACE > integer-value K | M | G
此条件定义 成员上的 SQL 语句可以使用的最大系统临时空间量。 此值可以是任何正整数(非零)(SQLSTATE 42820)。

如果指定了 integer-value K(采用大写或小写形式),那么最大大小为 integer-value 的 1024 倍。 如果指定了 integer-value M,那么最大大小为 integer-value 的 1 048 576 倍。 如果指定了 integer-value G,那么最大大小为 integer-value 的 1 073 741 824 倍。

此条件跟踪的活动包括:
  • 类型为 DML 的协调程序活动,及相应的子代理程序工作(子节执行)。
  • 派生自用户逻辑及其对应子代理程序工作(子节执行)的嵌套 DML 活动。 由数据库管理器通过内部 SQL 启动的活动不受此条件影响。
AGGSQLTEMPSPACE > integer-value K | M | G

此条件定义 成员上服务类中的一组语句可以使用的最大系统临时空间量。 此值可以是任何正整数(非零)(SQLSTATE 42820)。

如果指定了 integer-value K(采用大写或小写形式),那么最大大小为 integer-value 的 1024 倍。 如果指定了 integer-value M,那么最大大小为 integer-value 的 1 048 576 倍。 如果指定了 integer-value G,那么最大大小为 integer-value 的 1 073 741 824 倍。

此条件跟踪的聚合所涉及的活动包括:

  • 类型为 DML 的协调程序活动和相应的子代理程序工作(如子节执行)。
  • 派生自用户逻辑及其相应子代理程序工作(如子节执行)的嵌套 DML 活动。 数据库管理器通过内部 SQL 语句启动的活动不受此条件影响。
SQLROWSREAD > bigint-value
此条件定义特定 成员上活动在其生存期内可读取的行数的上限。 此值可以是任何正整数(非零)(SQLSTATE 42820)。 请注意,读取的行数与返回的行数不同,后者由 SQLROWSRETURNED 条件控制。

此条件跟踪的活动包括:

  • 类型为 DML 的协调程序活动和相应的子代理程序工作(如子节执行)。
  • 内部 SQL 活动(例如,通过设置约束或刷新具体化查询表而启动的活动)也不计入此阈值,因为它们是由数据库管理器启动的,而不是由用户逻辑直接调用的。
CHECKING EVERY integer-value SECOND | SECONDS
指定检查活动阈值条件的频率。 将在每个请求(例如,访存操作)的末尾并按 CHECKING 子句定义的时间间隔检查该阈值。 CHECKING 子句定义可能未检测到阈值违例的时间的上限。 该值可以是任何正整数(非零),最大值为 86400 秒 (SQLSTATE 42820)。 设置较低的值可能会对系统性能产生负面影响。
SQLROWSREADINSC > bigint-value
此条件定义特定 成员 上的活动在服务子类中执行时可以读取的行数的上限。 在指定的服务子类中执行之前读取的行不计入在内。 此值可以是任何正整数(非零)(SQLSTATE 42820)。 请注意,读取的行数与返回的行数不同,后者由 SQLROWSRETURNED 条件控制。

此条件跟踪的活动包括:

  • 类型为 DML 的协调程序活动和相应的子代理程序工作(如子节执行)。
  • 内部 SQL 活动(例如,通过设置约束或刷新具体化查询表而启动的活动)也不计入此阈值,因为它们是由数据库管理器启动的,而不是由用户逻辑直接调用的。
CHECKING EVERY integer-value SECOND | SECONDS
指定检查活动阈值条件的频率。 将在每个请求(例如,访存操作)的末尾并按 CHECKING 子句定义的时间间隔检查该阈值。 CHECKING 子句定义可能未检测到阈值违例的时间的上限。 该值可以是任何正整数(非零),最大值为 86400 秒 (SQLSTATE 42820)。 设置较低的值可能会对系统性能产生负面影响。
CPUTIME > integer-value HOUR | HOURS | MINUTE | MINUTES | SECOND | SECONDS
此条件定义特定 成员上的活动在其生存期内可能耗用的处理器时间量的上限。 此阈值跟踪的处理器时间是从活动开始执行的时间开始测量的。 此值可以是任何正整数(非零)(SQLSTATE 42820)。

此条件跟踪的活动包括:

  • 类型为 DML 的协调程序活动和相应的子代理程序工作(如子节执行)。
  • 内部 SQL 活动(例如,通过设置约束或刷新具体化查询表启动的活动)也不会被此阈值跟踪,因为它们是由数据库管理器启动的,而不是由用户逻辑直接调用。
  • 类型为 CALL 的活动。 对于 CALL 活动,过程跟踪的处理器时间不包括任何子活动或任何受防护方式进程使用的处理器时间。 仅当从用户逻辑返回到数据库引擎时,才会检查阈值条件。 例如:在执行可信例程期间,仅当例程向数据库引擎发出请求时,才会检查阈值条件。
CHECKING EVERY integer-value SECOND | SECONDS
指定检查活动阈值条件的频率。 CPUTIME 阈值的粒度大约是这个数字乘以活动的并行度。 例如:如果每 60 秒检查一次阈值,并且并行度为 2,那么在检测到阈值违例之前,活动可能使用额外 2 分钟(而不是 1 分钟)的处理器时间。 该值可以是任何正整数(非零),最大值为 86400 秒 (SQLSTATE 42820)。 设置较低的值可能会对系统性能产生负面影响。
CPUTIMEINSC > integer-value DAY | DAYS | HOUR | HOURS | MINUTE | MINUTES | SECOND | SECONDS
此条件定义活动在服务子类中执行时在特定 成员 上可能耗用的处理器时间量的上限。 此阈值跟踪的处理器时间是从活动开始在阈值域中标识的服务子类中执行的时间开始测量的。 在该点之前使用的任何处理器时间都不会计入此阈值所强加的限制。 此值可以是任何正整数(非零)(SQLSTATE 42820)。

此条件跟踪的活动包括:

  • 类型为 DML 的协调程序活动和相应的子代理程序工作(如子节执行)。
  • 内部 SQL 活动(例如,通过设置约束或刷新具体化查询表启动的活动)也不会被此阈值跟踪,因为它们是由数据库管理器启动的,而不是由用户逻辑直接调用。
  • 类型为 CALL 的活动。 对于 CALL 活动,过程跟踪的处理器时间不包括任何子活动或任何受防护方式进程使用的处理器时间。 仅当从用户逻辑返回到数据库引擎时,才会检查阈值条件。 例如:在执行可信例程期间,仅当例程向数据库引擎发出请求时,才会检查阈值条件。
CHECKING EVERY integer-value SECOND | SECONDS
指定检查活动阈值条件的频率。 CPUTIMEINSC 阈值的粒度大约是这个数字乘以活动的并行度。 例如:如果每 60 秒检查一次阈值,并且并行度为 2,那么在检测到阈值违例之前,活动可能使用额外 2 分钟(而不是 1 分钟)的处理器时间。 该值可以是任何正整数(非零),最大值为 86400 秒 (SQLSTATE 42820)。 设置较低的值可能会对系统性能产生负面影响。
ACTIVITYTOTALRUNTIME > integer-value DAY | DAYS | HOUR | HOURS | MINUTE | MINUTES | SECONDS
此条件用于定义数据库管理器允许活动运行的时间量的上限。 时间量不包括 WLM 并行阈值对活动进行排队的时间。 此条件的定义域必须是以下阈值之一 (SQLSTATE 5U037):
  • 数据库
  • 服务超类
  • 服务子类
  • 语句
  • 工作负载
  • 工作操作 1
    1. 工作操作定义域的阈值是使用 CREATE WORK ACTION SET 或 ALTER WORK ACTION SET 语句创建的。 工作操作集必须应用于工作负载或数据库。

执行作用域必须是 DATABASE (SQLSTATE 5U037)。

指定的 integer-value 必须是大于零的整数 (SQLSTATE 42820)。 使用有效的持续时间关键字来指定 integer-value 的相应时间单位。 如果指定的时间单位为 SECONDS,那么该值必须是 10 的倍数 (SQLSTATE 42615)。 可针对此阈值指定的最大值为 2 147 483 640 秒。 如果 DAY、HOUR、MINUTE 或 SECONDS 时间单位的任何值对应的秒数大于最大值,那么将返回一个错误 (SQLSTATE 42615)。

ACTIVITYTOTALRUNTIMEINALLSC > integer-value DAY | DAYS | HOUR | HOURS | MINUTE | MINUTES | SECONDS
此条件用于定义数据库管理器允许活动运行的时间量的上限。 时间量不包括 WLM 并行阈值对活动进行排队的时间。 此阈值跟踪的执行时间是从活动开始运行的时间开始测量的。

此条件的定义域必须是服务子类(指定 UNDER 子句的 SERVICE CLASS),并且执行作用域必须是 DATABASE (SQLSTATE 5U037)。

指定的 integer-value 必须是大于零的整数 (SQLSTATE 42820)。 使用有效的持续时间关键字来指定 integer-value 的相应时间单位。 如果指定的时间单位为 SECONDS,那么该值必须是 10 的倍数 (SQLSTATE 42615)。 可针对此阈值指定的最大值为 2 147 483 640 秒。 如果 DAY、HOUR、MINUTE 或 SECONDS 时间单位的任何值对应的秒数大于最大值,那么将返回一个错误 (SQLSTATE 42615)。

DATATAGINSC IN (integer-constant, ...)
此条件定义活动触及的表空间上指定的一个或多个数据标记值。 表空间或其底层存储组(如果适用)上的数据标记不能设置或不能设置为 1 到 9 之间的值。 如果活动触及未设置数据标记的表空间(在表空间或存储组级别),那么此阈值不会对该活动产生任何影响。 此条件的定义域必须是服务子类(指定 UNDER 子句的 SERVICE CLASS),并且执行作用域必须是 DATABASE PARTITION (SQLSTATE 5U037)。 将在每个数据库分区中单独执行此条件。

此条件跟踪的活动包括:

  • 类型为数据操作语言 (DML) 的协调程序活动。
  • 直接从用户逻辑中调用的嵌套 DML 活动。

此条件将不跟踪数据库管理器可通过内部 SQL 启动的 DML 活动。

仅当对表打开扫描操作或对表执行插入操作时,才会检查此阈值。 打开扫描操作后从表中访存数据将不会违反该阈值。

DATATAGINSC NOT IN (integer-constant, ...)
此条件定义活动触及的表空间上指定的一个或多个数据标记值。 表空间或其底层存储组(如果适用)上的数据标记不能设置或不能设置为 1 到 9 之间的值。 如果活动触及未设置数据标记的表空间(在表空间或存储组级别),那么此阈值不会对该活动产生任何影响。 此条件的定义域必须是服务子类(指定 UNDER 子句的 SERVICE CLASS),并且执行作用域必须是 DATABASE PARTITION (SQLSTATE 5U037)。 将在每个数据库分区中单独执行此条件。

此条件跟踪的活动包括:

  • 类型为数据操作语言 (DML) 的协调程序活动。
  • 直接从用户逻辑中调用的嵌套 DML 活动。

此条件将不跟踪数据库管理器可通过内部 SQL 启动的 DML 活动。

仅当对表打开扫描操作或对表执行插入操作时,才会检查此阈值。 打开扫描操作后从表中访存数据将不会违反该阈值。

alter-threshold-exceeded-actions
指定在超出条件时要执行的操作。 每次超出条件时,都会在所有活动阈值违例事件监视器中记录一个事件。
COLLECT ACTIVITY DATA
指定在活动完成时,将已超出阈值的每个活动的相关数据发送到任何处于活动状态的活动事件监视器。 COLLECT ACTIVITY DATA 设置不适用于非活动阈值,例如 CONNECTIONIDLETIME、TOTALDBPARTITIONCONNECTIONS、TOTALSCPARTITIONCONNECTIONS、CONCURRENTWORKLOADOCCURRENCES 或 UOWTOTALTIME。
alter-collect-activity-data-clause
ON COORDINATOR MEMBER
指定仅在活动的协调程序 成员 处收集活动数据。
ON ALL MEMBERS
指定要在处理活动的所有 成员 处收集活动数据。 在远程 成员上,随着活动的出现和对这些 成员执行操作,可能会多次捕获该活动的记录。 对于预测阈值,仅当您还为超出阈值指定了 CONTINUE 操作时,才会在所有 成员 处收集活动信息。 对于反应阈值, ON ALL MEMBERS 子句没有任何作用,活动信息始终仅在协调程序 成员处收集。 对于预测阈值和反应阈值,将仅在协调程序 成员处收集任何 输入数据值,部分信息或值。
WITHOUT DETAILS
指定在活动执行完毕时,将与定义此工作操作的工作类相关联的每个活动的相关数据发送到任何处于活动状态的活动事件监视器。 将不发送有关语句、编译环境和节环境数据的详细信息。
WITH
详细信息
指定将语句和编译环境数据发送到其所属活动的任何处于活动状态的活动事件监视器。 将不发送节环境数据。
SECTION
指定将语句、编译环境、节环境数据和节实际值发送到其所属活动的任何处于活动状态的活动事件监视器。 如果指定了 SECTION,那么必须指定 DETAILS。 对于预测性阈值,将在用于收集活动数据的任何成员上收集节实际值。 对于反应性阈值,将仅在协调程序成员上收集节实际值。
AND VALUES
指定将输入数据值发送到其所属活动的任何处于活动状态的活动事件监视器。 此数据不包含使用 REOPT ALWAYS 绑定选项编译的 SQL 语句。
NONE
指定不应对超出阈值的每个活动收集活动数据。
STOP EXECUTION
将停止执行活动并返回一个错误 (SQLSTATE 5U026)。 如果使用的是 UOWTOTALTIME 阈值,那么将回滚工作单元。
CONTINUE
将不停止执行活动。 当条件还具有队列时,此选项会导致排队超出队列大小。
FORCE APPLICATION
应用程序被强制退出系统 ( SQLSTATE 55032)。 只能对 UOWTOTALTIME 阈值指定此操作。
remap-activity-action
REMAP ACTIVITY TO service-subclass-name
此活动将映射到 service-subclass-name。 将不停止执行活动。 此操作仅适用于 in-service-class 和 in-all-service-class 阈值,例如 CPUTIMEINSC、SQLROWSREADINSC、DATATAGINSC IN 和 DATATAGINSC NOT IN 以及 ACTIVITYTOTALRUNTIMEINALLSC 阈值 (SQLSTATE 5U037)。 service-subclass-name 必须标识与阈值相关联的超类下的现有服务子类 (SQLSTATE 5U037)。 service-subclass-name 不能与阈值的关联服务子类相同 (SQLSTATE 5U037)。
NO EVENT MONITOR RECORD
指定不写入任何阈值违规记录。
LOG EVENT MONITOR RECORD
指定当 THRESHOLD VIOLATIONS 事件监视器存在且处于活动状态时将在其中写入一个阈值违规记录。
ENABLE 或 DISABLE
指定是否启用阈值以供数据库管理器使用。
ENABLE
数据库管理器使用阈值来限制数据库活动的执行。 当前正在运行的数据库活动将继续执行,而不限制此阈值。
DISABLE
数据库管理器不使用阈值来限制数据库活动的执行。 新数据库活动将不受此阈值限制。 必须禁用队列的阈值(例如 TOTALSCMEMBERCONNECTIONS 或 CONCURRENTDBCOORDACTIVITIES),然后才能删除这些阈值。

注意

  • 可以在数据库行为的不同方面定义阈值以监视和控制该行为。 如果在活动上定义了阈值,除非另有指定,否则仅在实际执行 SQL 语句(不包括编译时间)和装入实用程序期间实施此阈值。
  • CONCURRENTWORKLOADOCCURRENCES 阈值与 CONCURRENTWORKLOADACTIVITIES 阈值的作用域有所不同。 CONCURRENTWORKLOADOCCURRENCES 将控制可同时映射到工作负载定义的连接数,而 CONCURRENTWORKLOADACTIVITIES 将控制映射到工作负载定义的每个连接可同时提交的活动数。
  • 更改将写入到系统目录中,但在 COMMIT 语句之后才会生效,即使对于发出该语句的连接也是如此。
  • 在所有分区中每次只允许有一个未落实的 WLM 独占 SQL 语句。 如果未落实的 WLM 独占 SQL 语句正在执行,那么后续 WLM 独占 SQL 语句将等到当前 WLM 独占 SQL 语句落实或回滚为止。
  • 阈值的新值仅影响在变更操作落实后开始执行的数据库活动。
  • 语法替代方法: 为了与先前版本的 Db2® 和其他数据库产品兼容,支持以下语法替代方法。 这些备用项是非标准的,不应使用。
    • 可以指定 DATABASE PARTITION 来代替 MEMBER,除非 DB2_ENFORCE_MEMBER_SYNTAX 注册表变量设置为 ON。
    • 可以指定 DATABASE PARTITIONS 来代替 MEMBERS,除非 DB2_ENFORCE_MEMBER_SYNTAX 注册表变量设置为 ON。
    • 可以指定 TOTALDBPARTITIONCONNECTIONS 来代替 TOTALMEMBERCONNECTIONS,除非 DB2_ENFORCE_MEMBER_SYNTAX 注册表变量设置为 ON。
    • 可以指定 TOTALSCPARTITIONCONNECTIONS 来代替 TOTALSCMEMBERCONNECTIONS,除非 DB2_ENFORCE_MEMBER_SYNTAX 注册表变量设置为 ON。

示例

将阈值 MAXBIGQUERIESCONCURRENCY 更改为最多三个(而不是两个)活动 。
   ALTER THRESHOLD MAXBIGQUERIESCONCURRENCY
     WHEN CONCURRENTDBCOORDACTIVITIES > 3
     STOP EXECUTION
由于这是队列的阈值,因此除非已禁用阈值,否则无法删除该阈值,如下所示:
   ALTER THRESHOLD MAXBIGQUERIESCONCURRENCY DISABLE