CREATE WORKLOAD 语句
CREATE WORKLOAD 语句定义工作负载。
调用
此语句可嵌入应用程序中或者以交互方式发出。 它是一个可执行语句,仅当 DYNAMICRULES 运行行为对于程序包有效时才能动态编译 (SQLSTATE 42509)。
权限
语句的授权标识所拥有的特权必须包括 WLMADM 或 DBADM 权限。
语法
描述
- workload-name
- 命名工作负载。 这是一部分名称。 这是一个 SQL 标识(普通标识或定界标识)。 workload-name 不能标识当前服务器上已存在的工作负载 (SQLSTATE 42710)。 此名称不能以字符“SYS”开头 (SQLSTATE 42939)。
- connection-attributes
- 如果要在建立连接时与此工作负载相关联,那么连接的属性必须与此工作负载定义中指定的所有属性匹配。 如果为工作负载定义中的连接属性指定了值列表,那么该连接的相应属性必须至少与该列表中的一个值匹配。 如果未在工作负载定义中指定连接属性,那么该连接可以具有对应连接属性的任何值。注: 所有连接属性都区分大小写,但 ADDRESS 除外。
- ADDRESS ('address-value', ...)
- 对 ADDRESS 连接属性指定一个或多个 IPv4 地址、IPv6 地址或安全域名。 一个地址值只能在该列表中出现一次 (SQLSTATE 42713) 。 唯一受支持的协议是 TCP/IP。 每个地址值必须是 IPv4 地址、IPv6 地址或安全域名。
IPv4 地址不能包含前导空格并表示为点分十进制地址。 IPv4 地址的示例为 192.0.2.1。 值 localhost 或其等效表示 127.0.0.1 不会产生匹配;必须改为指定主机的实际 IPv4 地址。 IPv6 地址不能包含前导空格并表示为冒号十六进制地址。 IPv6 地址的示例是 2001:0DB8:0000:0000:0008:0800:200C:417A. IPv4-mapped IPv6 地址 (例如::ffff:192.0.2.1) 不会导致匹配。 同样,localhost 或其 IPv6 简短表示 ::1 不会产生匹配。 域名由域名服务器转换为 IP 地址,从而确定生成的 IPv4 或 IPv6 地址。 域名的示例为 corona.example.com。 将域名转换为 IP 地址时,此转换的结果可能是一组一个或多个 IP 地址。 在此情况下,如果发起连接的 IP 地址与域名转换到的任何 IP 地址匹配,则传入连接被认为与工作负载对象的 ADDRESS 属性匹配。
创建工作负载对象时,您应该为 ADDRESS 属性指定域名值而不是静态 IP 地址,特别是在动态主机配置协议 (DHCP) 环境中,设备每次连接到网络时都可以有不同的 IP 地址。
- APPLNAME ('application-name', ...)
- 为 APPLNAME 连接属性指定一个或多个应用程序。 一个应用程序名称在该列表中只能出现一次 (SQLSTATE 42713)。 如果 application-name 未包含单个星号字符 (*),则相当于系统监视器输出和 LIST APPLICATIONS 命令输出中的
Application name
字段中显示的值。 如果 application-name 包含单个星号字符 (*) ,那么值将用作表达式来表示一组应用程序名称,其中星号 (*) 表示零个或多个字符的字符串。 如果表达式需要在应用程序名称中包含星号字符,请使用两个星号字符 (**) 的序列。 - SYSTEM_USER ('authorization-name', ...)
- 为 SYSTEM USER 连接属性指定一个或多个授权标识。 一个授权授权只能在该列表中出现一次 (SQLSTATE 42713)。
- SESSION_USER ('authorization-name', ...)
- 为 SESSION USER 连接属性指定一个或多个授权标识。 一个授权授权只能在该列表中出现一次 (SQLSTATE 42713)。
- SESSION_USER GROUP ('authorization-name', ...)
- 为 SESSION_USER GROUP 连接属性指定一个或多个授权标识。 一个授权授权只能在该列表中出现一次 (SQLSTATE 42713)。
- SESSION_USER ROLE ('authorization-name', ...)
- 对 SESSION_USER ROLE 连接属性指定一个或多个授权标识。 在此上下文中,会话授权标识的角色是指会话授权标识可用的所有角色,无论这些角色如何获得。 一个授权授权只能在该列表中出现一次 (SQLSTATE 42713)。
- CURRENT CLIENT_USERID ('user-id', ...)
- 为 CURRENT CLIENT_USERID 连接属性指定一个或多个客户机用户标识。 一个客户机用户标识在该列表中只能出现一次 (SQLSTATE 42713)。 如果 user-id 包含一个星号字符 (*),则该值用作表示一组用户标识的表达式,其中星号 (*) 表示零个或多个字符的字符串。 如果表达式需要在用户标识中包含星号字符,请使用两个星号字符 (**) 的序列。
- CURRENT CLIENT_APPLNAME ('client-application-name', ...)
- 为 CURRENT CLIENT_APPLNAME 连接属性指定一个或多个应用程序。 一个应用程序名称在该列表中只能出现一次 (SQLSTATE 42713)。 如果 client-application-name 不包含单个星号字符 (*) ,那么等同于系统监视器输出中的
TP 监视器客户机应用程序名称
字段中显示的值。 如果 client-application-name 包含单个星号字符 (*) ,那么该值将用作表达式来表示一组应用程序名称,其中星号 (*) 表示零个或多个字符的字符串。 如果表达式需要在应用程序名称中包含星号字符,请使用两个星号字符 (**) 的序列。 - CURRENT CLIENT_WRKSTNNAME ('workstation-name', ...)
- 为 CURRENT CLIENT_WRKSTNNAME 连接属性指定一个或多个客户机工作站名称。 一个客户机工作站名称在该列表中只能出现一次 (SQLSTATE 42713)。 如果 workstation-name 包含单个星号字符 (*),则该值用作表示一组工作站名称的表达式,其中星号 (*) 表示零个或多个字符的字符串。 如果表达式需要在工作站名称中包含星号字符,请使用两个星号字符 (**) 的序列。
- CURRENT CLIENT_ACCTNG ('accounting-string', ...)
- 为 CURRENT CLIENT_ACCTNG 连接属性指定一个或多个客户机记帐字符串。 一个客户机记帐字符串在该列表中只能出现一次 (SQLSTATE 42713)。 如果 accounting-string 包含单个星号字符 (*),则该值用作表示一组会计字符串的表达式,其中星号 (*) 表示零个或多个字符的字符串。 如果表达式需要在记帐字符串中包含星号字符,请使用两个星号字符 (**) 的序列。
- 工作负载属性
- 指定工作负载的属性。
- ENABLE 或 DISABLE
- 指定在选择工作负载时是否将此工作负载视为 。 缺省值为 ENABLE。
- ENABLE
- 指定已启用工作负载,并且 在选择工作负载时将被视为工作负载。
- DISABLE
- 指定禁用工作负载,并且 在选择工作负载时不会将其视为工作负载。
- ALLOW DB ACCESS 或 DISALLOW DB ACCESS
- 指定是否允许与此工作负载关联的工作负载实例访问数据库。 缺省值为 ALLOW DB ACCESS。
- ALLOW DB ACCESS
- 指定允许与此工作负载相关联的工作负载实例访问数据库。
- DISALLOW DB ACCESS
- 指定不允许与此工作负载相关联的工作负载实例访问数据库。 与此工作负载相关联的下一个工作单元将被拒绝 (SQLSTATE 5U020)。 允许已运行的工作负载实例完成。
- MAXIMUM DEGREE
- 指定此工作负载的最大运行时并行度。 缺省值是 DEFAULT。
- 缺省值
- 如果
DB2_WORKLOAD=ANALYTICS,此设置将对此工作负载启用分区内并行性。 否则,此设置指定此工作负载从数据库管理器配置参数 intra_parallel 继承分区内并行设置。 intra_parallel 设置为 NO 时,此工作负载在分区内并行性被禁用的情况下运行。 intra_parallel 设置为 YES 时,此工作负载在分区内并行性被启用的情况下运行。 此工作负载未指定分配的应用程序的最大运行时间。 因此,实际运行时等级确定为 max_querydegree 配置参数值的下限,查询服务类上设置的 MAXIMUM DEGREE , SET RUNTIME DEGREE 命令设置的值以及 SQL 语句编译等级。 - degree
- 指定此工作负载的最大并行度。 有效值为 1 到 32767。 对于值 1,关联请求在已禁用分区内并行性的情况下运行。 对于值 2 到 32767,关联请求在已启用分区内并行性的情况下运行。 实际运行时等级确定为此 等级的下限,对查询服务类设置的 MAXIMUM DEGREE , max_querydegree 配置参数的值, SET RUNTIME DEGREE 命令设置的值以及 SQL 语句编译等级。注: 大于 1 的 MAXIMUM DEGREE 值将不会启用分区内并行性,除非共享排序堆可用。
- SERVICE CLASS service-class-name
- 指定将在服务类 service-class-name 中执行与此工作负载相关联的请求。 service-class-name 必须标识当前服务器上存在的服务类 (SQLSTATE 42704)。 service-class-name 不能是 'SYSDEFAULTSUBCLASS'、'SYSDEFAULTSYSTEMCLASS' 或 'SYSDEFAULTMAINTENANCECLASS' (SQLSTATE 5U032)。 缺省值为 SYSDEFAULTUSERCLASS。
- UNDER service-superclass-name
- 指定服务子类时使用此子句。 service-superclass-name 标识 service-class-name 的服务子类。 service-superclass-name 必须标识当前服务器上存在的服务超类 (SQLSTATE 42704)。 service-superclass-name 不能是 'SYSDEFAULTSYSTEMCLASS' 或 'SYSDEFAULTMAINTENANCECLASS' (SQLSTATE 5U032)。
- 位置
- 指定将此工作负载置于有序工作负载列表中的位置。 在运行时,将搜索此列表以查找与所需连接属性匹配的第一个工作负载。 缺省值为 LAST。
- LAST
- 指定工作负载在列表中排在最后,在缺省工作负载 SYSDEFAULTUSERWORKLOAD 和 SYSDEFAULTADMWORKLOAD 之前。
- BEFORE relative-workload-name
- 指定将工作负载放置在列表中的工作负载 relative-workload-name 之前。 relative-workload-name 必须标识当前服务器上存在的工作负载 (SQLSTATE 42704)。 如果 relative-workload-name 为 'SYSDEFAULTUSERWORKLOAD' 或 'SYSDEFAULTADMWORKLOAD',则不能指定 BEFORE 选项 (SQLSTATE 42832)。
- AFTER relative-workload-name
- 指定将工作负载放置在列表中的工作负载 relative-workload-name 之后。 relative-workload-name 必须标识当前服务器上存在的工作负载 (SQLSTATE 42704)。 如果 relative-workload-name 是 'SYSDEFAULTUSERWORKLOAD' 或 'SYSDEFAULTADMWORKLOAD',则不能指定 AFTER 选项 (SQLSTATE 42832)。
- AT position
- 指定将工作负载置于列表中的绝对位置。 此值可以是任何正整数(非零)(SQLSTATE 42615)。 如果 position 大于现有工作负载的数量加一,则工作负载将放置在最后一个位置,就在 SYSDEFAULTUSERWORKLOAD 和 SYSDEFAULTADMWORKLOAD 之前。
- COLLECT ACTIVITY METRICS
- 指定应对工作负载实例提交的活动收集监视指标。 缺省值为 COLLECT ACTIVITY METRICS NONE。注: 有效活动度量值收集设置是由 COLLECT ACTIVITY METRICS 子句在提交活动的工作负载上指定的属性与 mon_act_metrics 数据库配置参数的组合。 如果工作负载属性或配置参数的值不是 NONE,则会为活动收集指标。
- NONE
- 指定不会为工作负载实例提交的任何活动收集指标。
- BASE
- 指定将为工作负载实例提交的任何活动收集基本指标。
- EXTENDED
- 指定将为工作负载实例提交的任何活动收集基本指标。 此外,指定以下监视元素的值应以附加粒度确定:
- total_section_time
- total_section_proc_time
- total_routine_user_code_time
- total_routine_user_code_proc_time
- total_routine_time
- COLLECT ACTIVITY DATA
- 指定当活动完成时,将与此工作负载相关联的每个活动的数据发送到任何处于活动状态的活动事件监视器。 缺省值为 COLLECT ACTIVITY DATA NONE。
- collect-on-clause
- 指定要收集活动数据的位置。 缺省值为 ON 协调人 MEMBER。
- ON COORDINATOR MEMBER
- 指定仅在活动的协调程序 成员 处收集活动数据。
- ON ALL MEMBERS
- 指定要在处理活动的所有 成员 处收集活动数据。 在远程 成员上,随着活动的出现和对这些 成员执行操作,可能会多次捕获该活动的记录。 如果指定了 AND VALUES 子句,那么将仅为协调程序的 成员 收集活动输入值。
- NONE
- 指定不对与此工作负载相关联的每个活动收集活动数据。
- collect-details-clause
- 指定要收集的活动数据类型。 缺省值为 WITHOUT DETAILS。
- WITHOUT DETAILS
- 指定当活动完成执行时,将与此工作负载关联的每个活动的数据发送到任何处于活动状态的活动事件监视器。 将不发送有关语句、编译环境和节环境数据的详细信息。
- WITH
- 详细信息
- 指定将语句和编译环境数据发送到其所属活动的任何处于活动状态的活动事件监视器。 将不发送节环境数据。
- SECTION
- 指定将语句、编译环境、节环境数据和节实际值发送到其所属活动的任何处于活动状态的活动事件监视器。 如果指定了 SECTION,那么必须指定 DETAILS。 将在收集活动数据的任何 成员 上收集部分实际值。
- INCLUDE ACTUALS BASE
- 指定还应在收集活动数据的任何分区上收集分段实际值。 要收集分段实际值,必须指定 INCLUDE ACTUALS 子句或必须设置 section_actuals 数据库配置参数。
The effective setting for the collection of section actuals is the combination of the INCLUDE ACTUALS clause, the section_actuals database configuration parameter, and the <collectsectionactuals> setting specified on the WLM_SET_CONN_ENV routine. For example, if INCLUDE ACTUALS BASE is specified, yet the section_actuals database configuration parameter value is NONE and <collectsectionactuals> is set to NONE, then the effective setting for the collection of section actuals is BASE.
BASE 指定在活动执行期间应启用并收集以下内容:- 基本运算符基数计数
- 引用的每个对象的统计信息(仅限 DML 语句)
- AND VALUES
- 指定将输入数据值发送到其所属活动的任何处于活动状态的活动事件监视器。 此数据不包含使用 REOPT ALWAYS 绑定选项编译的 SQL 语句。
- COLLECT AGGREGATE ACTIVITY DATA
- 指定要将与此工作负载关联的活动的聚集活动数据发送到统计信息事件监视器 (如果一个活动)。 将按照 wlm_collect_int 数据库配置参数指定的时间间隔来定期收集此信息。 未指定 COLLECT AGGREGATE ACTIVITY DATA 时的缺省值为 COLLECT AGGREGATE ACTIVITY DATA NONE。 指定 COLLECT AGGREGATE ACTIVITY DATA 时的缺省值为 COLLECT AGGREGATE ACTIVITY DATA BASE。
- BASE
- 指定要将与此工作负载关联的活动的基本聚集活动数据发送到统计信息事件监视器 (如果一个活动)。 基本聚集活动数据包括:
- 活动 CPU 时间高水位标记
- 活动执行时间直方图
- 活动寿命直方图
- 活动队列时间直方图
- 读取的活动行数高水位标记
- 估计活动成本高水位标记
- 返回行数高水位标记
- 临时表空间使用率高水位标记。 只有应用了 SQLTEMPSPACE 阈值的活动才会参与此高水位标记。
- EXTENDED
- 指定要将与此工作负载关联的活动的所有聚集活动数据发送到统计信息事件监视器 (如果一个活动事件监视器)。 这包括所有基本聚集活动数据以及:
- 活动数据操作语言 (DML) 估计成本直方图
- 活动 DML 到达间隔时间直方图
- NONE
- 指定不收集此工作负载的聚集活动数据。
- COLLECT AGGREGATE UNIT OF WORK DATA
- 指定有关与此工作负载关联的工作单元的聚集工作单元数据将被发送到统计事件监视器(如果某个监视器处于活动状态)。 将按照 wlm_collect_int 数据库配置参数指定的时间间隔来定期收集此信息。 未指定 COLLECT AGGREGATE UNIT OF WORK DATA 时的缺省值为 COLLECT AGGREGATE UNIT OF WORK DATA NONE。
- BASE
- 指定有关与此工作负载关联的工作单元的基本聚集工作单元数据将发送到统计事件监视器(如果某个监视器处于活动状态)。 基本聚集工作单元包括:
- 工作单元生存期直方图
- NONE
- 指定将不收集此工作负载的聚集工作单元数据。
- COLLECT LOCK TIMEOUT DATA
- 指定在发生锁定事件时,将有关此工作负载中发生的锁定超时事件的数据发送到适用的事件监视器。 将在所有 成员上收集锁定超时数据。 缺省值为 COLLECT LOCK TIMEOUT DATA WITHOUT HISTORY。 此设置与 mon_locktimeout 数据库配置参数设置配合使用。 将使用生成最详细输出的设置。
- WITHOUT HISTORY
- 指定当锁定事件发生时,将有关此工作负载内发生的锁定事件的数据发送到任何活动锁定事件监视器。 过去的活动历史记录和输入值不会发送到事件监视器。
- NONE
- 指定不会在任何 成员上收集工作负载的锁定超时数据。
- WITH HISTORY
- 指定在当前工作单元中为所有此类锁定事件收集过去的活动历史记录。 使用最大大小限制后,活动历史记录缓冲区将回绕。
对任何一个应用程序所保留的先前活动数的缺省限制是 250。 如果过去的活动数量大于限制,则仅报告最新的活动。 可以使用注册表变量 DB2_MAX_INACT_STMTS 来覆盖此缺省值以指定不同的值。 您可以为限制选择其他值,以增加或减少用于过去活动信息的系统监视器堆的数量。
- AND VALUES
- 指定将输入数据值发送到任何活动锁定事件监视器(对于拥有它们的那些活动)。 这些数据值不包括 LOB 数据、LONG VARCHAR 数据、LONG VARGRAPHIC 数据、结构化类型数据或 XML 数据。 对于使用 REOPT ALWAYS 绑定选项编译的 SQL 语句,事件信息中不会提供 REOPT 编译或语句执行数据值。
- COLLECT DEADLOCK DATA
- 指定当锁定事件发生时,将有关此工作负载中发生的死锁事件的数据发送到任何活动锁定事件监视器。 将在所有 成员上收集死锁数据。 缺省值为 COLLECT 死锁数据 WITHOUT HISTORY。 仅当 mon_deadlock 数据库配置参数未设置为 NONE 时,才会采用此设置。
- WITHOUT HISTORY
- 指定当锁定事件发生时,将有关此工作负载内发生的锁定事件的数据发送到任何活动锁定事件监视器。 过去的活动历史记录和输入值不会发送到事件监视器。
- WITH HISTORY
- 指定在当前工作单元中为所有此类锁定事件收集过去的活动历史记录。 使用最大大小限制后,活动历史记录缓冲区将回绕。
对任何一个应用程序所保留的先前活动数的缺省限制是 250。 如果过去的活动数量大于限制,则仅报告最新的活动。 可以使用注册表变量 DB2_MAX_INACT_STMTS 来覆盖此缺省值以指定不同的值。 您可以为限制选择其他值,以增加或减少用于过去活动信息的系统监视器堆的数量。
- AND VALUES
- 指定将输入数据值发送到任何活动锁定事件监视器(对于拥有它们的那些活动)。 这些数据值不包括 LOB 数据、LONG VARCHAR 数据、LONG VARGRAPHIC 数据、结构化类型数据或 XML 数据。 对于使用 REOPT ALWAYS 绑定选项编译的 SQL 语句,事件信息中不会提供 REOPT 编译或语句执行数据值。
- COLLECT LOCK WAIT DATA
- 指定在 wait-time内未获取锁定时,会将有关此工作负载中发生的锁定等待事件的数据发送到任何活动的锁定事件监视器。 缺省值为 COLLECT LOCK WAIT DATA NONE ,缺省值为 wait-time 0 微秒。 此设置与 mon_lockwait 和 mon_lw_thresh 数据库配置参数配合使用。 将使用生成最详细输出的设置。
- NONE
- 指定不会在任何 成员处收集工作负载的锁定等待事件。
- 对于等待时间超过 wait-time (SECONDS | MICROSECONDS) | 1 秒的锁定
- 指定在 wait-time内未获取锁定时,会将有关此工作负载中发生的锁定等待事件的数据发送到任何活动的锁定事件监视器。
此值可以是任何非负整数。 使用有效的持续时间关键字来指定 wait-time 的相应时间单位。 wait-time 参数的最小有效值为 1000 微秒。
- WITH HISTORY
- 指定在当前工作单元中为所有此类锁定事件收集过去的活动历史记录。 使用最大大小限制后,活动历史记录缓冲区将回绕。
对任何一个应用程序所保留的先前活动数的缺省限制是 250。 如果过去的活动数量大于限制,则仅报告最新的活动。 可以使用注册表变量 DB2_MAX_INACT_STMTS 来覆盖此缺省值以指定不同的值。 您可以为限制选择其他值,以增加或减少用于过去活动信息的系统监视器堆的数量。
- AND VALUES
- 指定将输入数据值发送到任何活动锁定事件监视器(对于拥有它们的那些活动)。 这些数据值不包括 LOB 数据、LONG VARCHAR 数据、LONG VARGRAPHIC 数据、结构化类型数据或 XML 数据。 对于使用 REOPT ALWAYS 绑定选项编译的 SQL 语句,事件信息中不会提供 REOPT 编译或语句执行数据值。
- COLLECT UNIT OF WORK DATA
- 指定在工作单元结束时将与此工作负载关联的每个事务的相关数据发送到工作单元事件监视器 (如果有)。 当未指定 COLLECT UNIT OF WORK DATA 时,缺省值为 COLLECT UNIT OF WORK DATA NONE。 当指定 COLLECT UNIT OF WORK DATA 时,缺省值为 COLLECT UNIT OF WORK DATA BASE。 如果 mon_uow_data 数据库配置参数设置为 BASE ,那么它优先于 COLLECT UNIT OF WORK DATA 参数。 mon_uow_data 的值为 NONE 表示将使用单个工作负载的 COLLECT UNIT OF WORK DATA 参数。
- NONE
- 指定与此工作负载相关联的事务的工作单元数据不发送到工作单元事件监视器。 缺省值为 COLLECT UNIT OF WORK DATA NONE。
- BASE
- 指定将与此工作负载关联的事务的基本数据级别发送到工作单元事件监视器。
工作单元事件中报告的一些信息是系统级别请求指标。 对这些指标的收集的控制独立于工作单元数据的收集。 请求指标由超类上的 COLLECT REQUEST METRICS 子句或使用 mon_req_metrics 数据库配置参数控制。 与工作负载相关联的服务超类或与工作负载相关联的服务子类的服务超类必须启用请求指标的收集,以便在工作单元事件中显示请求指标。 如果未启用请求指标收集,那么请求指标值将为零。
- INCLUDE PACKAGE LIST
- 指定将与此工作负载关联的事务的基本级别数据和包列表发送到工作单元事件监视器。
所收集包列表的大小由 mon_pkglist_sz 数据库配置参数的值确定。 如果此值为 0,那么即使指定了 PACKAGE LIST 选项,也不会收集包列表。
在分区数据库环境中,包列表仅在协调器成员上可用。 将在远程成员上进行 BASE 级别收集。
工作单元事件中报告的一些信息是系统级别请求指标。 对这些指标的收集的控制独立于工作单元数据的收集。 请求指标由超类上的 COLLECT REQUEST METRICS 子句或使用 mon_req_metrics 数据库配置参数控制。 与工作负载相关联的服务超类或与工作负载相关联的服务子类的服务超类必须启用请求指标的收集,以便在工作单元事件中显示请求指标。 如果未启用请求指标收集,那么请求指标值将为零。
- INCLUDE EXECUTABLE LIST
- 指定将为工作单元收集可执行标识列表以及基本级别的数据,并将其发送到工作单元事件监视器。
- histogram-template-子句
- 指定收集工作负载中执行的活动的聚集活动数据时要使用的直方图模板。
- ACTIVITY LIFETIME HISTOGRAM TEMPLATE template-name
- 指定描述直方图的模板,该直方图用于收集有关特定时间间隔内在工作负载中运行的数据库活动的持续时间(以毫秒计)的统计数据。 此时间包括排队时间和执行时间。 缺省值为 SYSDEFAULTHISTOGRAM。 仅当带 BASE 或 EXTENDED 选项指定 COLLECT AGGREGATE ACTIVITY DATA 子句时,才会收集此信息。
- ACTIVITY QUEUETIME HISTOGRAM TEMPLATE template-name
- 指定描述直方图的模板,该直方图用于收集有关特定时间间隔内在工作负载中运行的数据库活动排队的时长(以毫秒计)的统计数据。 缺省值为 SYSDEFAULTHISTOGRAM。 仅当带 BASE 或 EXTENDED 选项指定 COLLECT AGGREGATE ACTIVITY DATA 子句时,才会收集此信息。
- ACTIVITY EXECUTETIME HISTOGRAM TEMPLATE template-name
- 指定描述直方图的模板,该直方图用于收集有关特定时间间隔内在工作负载中运行的数据库活动执行的时长(以毫秒计)的统计数据。 此时间未包括排队时间。 仅在协调程序 成员 处的此直方图中收集活动执行时间。 此时间未包括空闲时间。 空闲时间是在未执行工作时执行属于同一活动的请求之间的时间。 空闲时间的示例是打开游标操作结束到从该游标访存数据操作开始的时间。 缺省值为 SYSDEFAULTHISTOGRAM。 仅当带 BASE 或 EXTENDED 选项指定 COLLECT AGGREGATE ACTIVITY DATA 子句时,才会收集此信息。 仅考虑将嵌套级别为 0 的活动包括在直方图中。
- ACTIVITY ESTIMATEDCOST HISTOGRAM TEMPLATE template-name
- 指定描述直方图的模板,该直方图用于收集有关在工作负载中运行的 DML 活动的估计成本(以 timeron 为单位)的统计数据。 缺省值为 SYSDEFAULTHISTOGRAM。 仅当带 EXTENDED 选项指定 COLLECT AGGREGATE ACTIVITY DATA 子句时,才会收集此信息。 仅考虑将嵌套级别为 0 的活动包括在直方图中。
- ACTIVITY INTERARRIVALTIME HISTOGRAM TEMPLATE template-name
- 指定描述直方图的模板,该直方图用于收集从一个 DML 活动到达此工作负载与下一个 DML 活动到达此工作负载之间的时长(以毫秒计)的统计数据。 缺省值为 SYSDEFAULTHISTOGRAM。 仅当带 EXTENDED 选项指定 COLLECT AGGREGATE ACTIVITY DATA 子句时,才会收集此信息。
- UOW LIFETIME HISTOGRAM TEMPLATE template-name
- 指定描述直方图的模板,该直方图用于收集有关特定时间间隔内在工作负载中运行的工作单元的持续时间(以毫秒计)的统计数据。 缺省值为 SYSDEFAULTHISTOGRAM。 仅当带 BASE 选项指定 COLLECT AGGREGATE UNIT OF WORK DATA 子句时才会收集此信息。
规则
- 工作负载管理 (WLM) 独占 SQL 语句必须后跟 COMMIT 或 ROLLBACK 语句 (SQLSTATE 5U021)。 WLM 独占 SQL 语句包括:
- CREATE HISTOGRAM TEMPLATE、ALTER HISTOGRAM TEMPLATE 或 DROP (HISTOGRAM TEMPLATE)
- CREATE SERVICE CLASS、ALTER SERVICE CLASS 或 DROP (SERVICE CLASS)
- CREATE THRESHOLD、ALTER THRESHOLD 或 DROP (THRESHOLD)
- CREATE WORK ACTION SET、ALTER WORK ACTION SET 或 DROP (WORK ACTION SET)
- CREATE WORK CLASS SET、ALTER WORK CLASS SET 或 DROP (WORK CLASS SET)
- CREATE WORKLOAD、ALTER WORKLOAD 或 DROP (WORKLOAD)
- GRANT(工作负载权限)或 REVOKE(工作负载权限)
- 不能在全局事务(例如 XA 事务)中发出 WLM 独占 SQL 语句 (SQLSTATE 51041)。
注意
- 更改将写入系统目录,但在它们落实之前不会生效,即使对于发出该语句的连接也是如此。
- 在所有分区中每次只允许有一个未落实的 WLM 独占 SQL 语句。 如果未落实的 WLM 独占 SQL 语句正在执行,那么后续 WLM 独占 SQL 语句将等到当前 WLM 独占 SQL 语句落实或回滚为止。
- 建立数据库连接时,数据库管理器将根据 POSITION 子句中指定的连接属性 (按规范顺序) 来查找匹配的工作负载。 如果找到匹配的工作负载,那么数据库管理器将检查当前会话用户是否对该工作负载具有 USAGE 特权。 如果会话用户对工作负载没有 USAGE 特权,那么数据库管理器将查找下一个匹配的工作负载。 如果会话用户对此工作负载具有 USAGE 特权,那么连接将与工作负载相关联。 如果找不到匹配的工作负载,那么连接将与缺省用户工作负载 SYSDEFAULTUSERWORKLOAD 相关联。 如果会话用户对 SYSDEFAULTUSERWORKLOAD 没有 USAGE 特权,那么将返回错误 (SQLSTATE 42501)。
- 如果数据库管理器检测到下列其中一种情况,那么将在每个新工作单元开始时重新评估工作负载关联。
- 连接属性已更改。 如果发生了以下任何事件,那么可能会发生此情况:
- 已调用集客户机信息 API (sqleseti) ,并且它已更改工作负载定义中包含的连接属性。 请注意,虽然客户机信息可以由最终用户设置,以便它可以启动工作负载重新评估,但如果会话用户没有对工作负载的 USAGE 特权,那么不会发生工作负载重新映射本身。
- 已调用 SET SESSION AUTHORIZATION 语句,并且它已更改当前会话用户。
- 可用于会话用户的角色已更改。
- 将创建工作负载。
- 工作负载已删除。
- 工作负载已变更。
- 将对工作负载的 USAGE 特权授予用户,组或角色。
- 撤销用户,组或角色对工作负载的 USAGE 特权。
- 连接属性已更改。 如果发生了以下任何事件,那么可能会发生此情况:
- 当活动仍处于活动状态时,无法将连接重新分配到其他工作负载。 此类活动的示例包括装入操作,执行过程或在多个工作单元 (例如打开的 WITH HOLD 游标) 中维护资源的语句。 当前工作负载实例将继续运行,直到所有正在执行的活动都完成为止。 工作负载重新分配在下一个工作单元开始时进行。
- 服务类已由工作负载引用后,在不再由任何工作负载引用之前,无法删除该服务类。 可以执行以下任一操作来从工作负载中除去服务类引用:
- 更改工作负载以更改服务类名
- 删除工作负载
- 在角色已由工作负载引用后,无法将其删除,直到不再由任何工作负载引用为止。 可以执行以下任一操作以从工作负载中除去角色引用:
- 变更工作负载以除去角色
- 删除工作负载
- 特权:创建工作负载时,不会将 USAGE 特权授予任何用户、组或角色。 为允许使用工作负载,请使用 GRANT USAGE ON WORKLOAD 语句授予用户、组或角色对该工作负载的 USAGE 权限。
- 语法替代方法: 支持以下内容以与先前版本的 Db2® 和其他数据库产品兼容。 这些备用项是非标准的,不应使用。
- 可以指定 DATABASE PARTITION 来代替 MEMBER,除非 DB2_ENFORCE_MEMBER_SYNTAX 注册表变量设置为 ON。
- 可以指定 DATABASE PARTITIONS 来代替 MEMBERS,除非 DB2_ENFORCE_MEMBER_SYNTAX 注册表变量设置为 ON。
- 可指定 COLLECT UNIT OF WORK DATA PACKAGE LIST 以替代 COLLECT UNIT OF WORK DATA BASE INCLUDE PACKAGE LIST。
示例
- 示例 1: 为属于组 FINANCE 的会话用户提交的请求创建名为 CAMPAIGN 的工作负载。 这些请求将在缺省用户服务类 SYSDEFAULTUSERCLASS 中执行。
CREATE WORKLOAD CAMPAIGN SESSION_USER GROUP ('FINANCE') - 示例 2: 为具有将 CURRENT CLIENT_APPLNAME 专用寄存器设置为 SALARYSYS 的角色 HR 的会话用户创建名为 PAYROLL 的工作负载。 与此工作负载相关联的工作单元将在服务超类 HRSC 下的服务类 MEDIUMSC 中执行。 在运行时选择工作负载时,仅应在对工作负载 CAMPAIGN 进行求值并确定为不匹配后评估此工作负载。
CREATE WORKLOAD PAYROLL SESSION_USER ROLE ('HR') CURRENT CLIENT_APPLNAME ('SALARYSYS') SERVICE CLASS MEDIUMSC UNDER HRSC POSITION AFTER CAMPAIGN - 示例 3: 当前正在系统上运行出现的工作负载 CAMPAIGN (来自示例 1)。 Create a workload named NEWCAMPAIGN, also for requests that are submitted by a session user belonging to group FINANCE, but only those requests submitted through application DB2BP.EXE. 与此工作负载关联的请求将在服务类 MARKETINGSC 中执行。 应该先对 NEWCAMPAIGN 进行求值,然后再对 CAMPAIGN 进行求值。
CAMPAIGN 的运行工作负载实例将继续运行,直到当前工作单元完成 (此时将进行工作负载重新评估) ,然后可以将连接重新映射到工作负载 NEWCAMPAIGN。CREATE WORKLOAD NEWCAMPAIGN SESSION_USER GROUP ('FINANCE') APPLNAME ('DB2BP.EXE') SERVICE CLASS MARKETINGSC POSITION BEFORE CAMPAIGN - 示例 4: 为通过应用程序 appl1, appl2或 appl3 由系统用户 BOB 或 MARY 提交的请求创建名为 REPORTS 的工作负载。
CREATE WORKLOAD REPORTS APPLNAME ('appl1', 'appl2', 'appl3') SYSTEM_USER ('BOB', 'MARY') - 示例 5: 假定名为 PAYROLL 的锁定事件监视器存在并且处于活动状态,请使用语句历史记录为工作负载员工中发生的锁定超时事件创建锁定事件记录。
CREATE WORKLOAD EMPLOYEES APPLNAME ("app1", "app2") COLLECT LOCK TIMEOUT DATA WITH HISTORY - 示例 6: 假定名为 PAYROLL 的锁定事件监视器存在并且处于活动状态,那么仅为所有分区上的工作负载金融中发生的死锁和锁定超时事件创建锁定事件记录。
CREATE WORKLOAD FINANCE APPLNAME ("app1", "app2") COLLECT DEADLOCK DATA COLLECT LOCK TIMEOUT DATA - 示例 7: 假定名为 PAYROLL 的锁定事件监视器存在并且处于活动状态,请使用语句历史记录和在工作负载 MANAGER 中发生的死锁事件的值来创建锁定事件记录。
CREATE WORKLOAD MANAGERS APPLNAME ("app1", "app2") COLLECT DEADLOCK DATA WITH HISTORY AND VALUES - 示例 8: 假定名为 PAYROLL 的锁定事件监视器存在并且处于活动状态,请为在 MANAGER 工作负载中等待 5000 毫秒后获取的锁定创建具有语句历史记录的锁定事件记录。
CREATE WORKLOAD MANAGERS APPLNAME ("app1", "app2") COLLECT LOCK WAIT DATA FOR LOCKS WAITING MORE THAN 5 SECONDS WITH HISTORY - 示例 9: 为共享类似名称 (accrec01, accrec02 ...) 的所有应收账款应用程序创建名为 ACCRECS 的工作负载 accrec15) 并将它们分配给服务类 ACCOUNTNGSC。 应用程序名称是在通配符 (*) 的帮助下通过 APPLNAME 连接属性标识的,不需要单独指定。
CREATE WORKLOAD ACCRECS SESSION_USER GROUP ('ACCOUNTING') APPLNAME ('accrec*') SERVICE CLASS ACCOUNTNGSC - 示例 10: 为通过应用程序 appl1提交的请求创建名为 CAMPAIGN 的工作负载,并将收集的工作单元数据发送到任何活动的工作单元事件监视器。
CREATE WORKLOAD CAMPAIGN APPLNAME ('appl1') COLLECT UNIT OF WORK DATA BASE - 示例 11: 以下语句显示在创建工作负载时如何指定 ADDRESS 连接属性支持的不同地址值格式。
- 要指定安全域名:
CREATE WORKLOAD DOMAINWORKLOAD ADDRESS ('aviator.example.com') - 要指定 IPv4 地址值:
CREATE WORKLOAD IPWORKLOAD1 ADDRESS ('192.0.2.11') - 要指定 IPv6 地址值 (长格式):
CREATE WORKLOAD IPWORKLOAD2 ADDRESS ('2001:db8:519:13:204:acff:fe57:6135') - 要指定 IPv6 地址值 (短格式):
CREATE WORKLOAD IPWORKLOAD3 ADDRESS ('2001:db8::202:55ff:fe9a:6eee')
- 要指定安全域名:
