反应式和预测式控制相结合
您可以在某些SQL语句执行期间限制其资源使用量,并在某些SQL语句执行前预测到它们可能会占用过多资源。
预测性管理仅适用于动态 SQL 语句。
示例
资源限制仅适用于以下类型的SQL语句:
- SELECT
- INSERT
- UPDATE
- MERGE
- TRUNCATE
- 删除
您可以为动态 SQL 语句和静态 SQL 语句指定资源限制。 资源限制适用于SQL语句,无论其是本地还是远程发出。 资源限制功能不适用于具有安装SYSADM或安装SYSOPR权限的主授权ID或次授权ID。
为了同时使用反应式和预测式资源限制,资源限制表必须至少包含两列,如下表所示。 如果处理成本估算属于成本类别 B,且您决定运行该语句,则可以使用资源限制表在处理器运行一定时间后终止该语句。
| RLFFUNC | AUTHID | RLFPKG | ASUTIME | RLFASUWARN | RLFASUERR | RLF_CATEGORY_B |
|---|---|---|---|---|---|---|
| 7 | USER1 | PKG2 | 0 | 800 | 1000 | W |
| 2 | USER1 | PKG2 | 1100 | 0 | 0 | (空白) |
本例中,RLST资源限制表的行导致 Db2 对在名为 PKG2:
- 预测模式
- 如果语句属于成本类别A,且成本估算大于1000 SUs,则 USER1 将收到SQLCODE -495,且语句不会被执行。
- 如果该声明属于成本类别A,且成本估算大于800 SUs但小于1000 SUs,则 USER1 将收到SQLCODE +495。
- 如果语句在成本类别B中, USER1 将收到SQLCODE +495。
- 反应模式
- 在以下任一情况下,声明不得超过1100 SUs:
- 在成本类别A中,一份声明的成本估算低于800苏
- 成本类别A的成本估算大于800且小于1000,或者成本类别B,且用户选择执行语句