• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >DB2 > DB2 最佳实践: DB2 Workload Management 工作负载管理最佳实践(下)

DB2 最佳实践: DB2 Workload Management 工作负载管理最佳实践(下)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了workload,workload是什么意思,heavy workload,workload 翻译,mental workload等相关知识,希望本文的分享对您有所帮助
</div>

确定在工作负载定义中使用的连接属性

您可以通过使用 DB2 工作负载管理器表函数确定定义连接到数据库的每个应用程序的工作负载对象的连接属性。例如:

SELECT COUNT(*) COUNT, SUBSTR(APPLICATION_NAME, 1, 10) APPLNAME, 
SUBSTR(SYSTEM_AUTH_ID,1,10) SYSTEM_USER , 
SUBSTR(SESSION_AUTH_ID,1,10) SESSION_ID , 
SUBSTR(CLIENT_USER,1,10) CLIENT_USER, 
SUBSTR(CLIENT_WRKSTNNAME,1,21) CLIENT_WRKSTNNAME , 
SUBSTR(CLIENT_ACCTNG,1,10) CLIENT_ACCTNG, 
SUBSTR(CLIENT_APPLNAME,1,10) CLIENT_APPLNAME 
FROM TABLE(WLM_GET_SERVICE_CLASS_WORKLOAD_OCCURRENCES('', '', - 
2)) A 
GROUP BY 
APPLICATION_NAME, SYSTEM_AUTH_ID, SESSION_AUTH_ID , 
CLIENT_WRKSTNNAME, CLIENT_ACCTNG, CLIENT_USER, CLIENT_APPLNAME; 

这个查询返回的输出显示当前运行的应用程序的数量和以下连接属性,这些连接属性可也用于以下 DB2 工作负载定义:APPLNAME (应用程序名)、SYSTEM_USER (系统授权 ID )、SESSION_ID (会话授权 ID )、CLIENT_USER (客户机用户 ID )、CLIENT_WRKSTNNAME (客户机工作站名)、CLIENT_ACCTNG (客户机帐户字符串) 和 CLIENT_APPLNAME (客户机应用程序名)。

COUNT APPLNAME SYSTEM_USER SESSION_ID CLIENT_USER 
CLIENT_WRKSTNNAME CLIENT_ACCTNG CLIENT_APPLNAME 
----- -------- -------- -------- ----------- ------ 
--------- --------- ------------ 
501 db2batch DB2INST3 DB2INST3 - - 
- - 
1 db2bp DB2INST3 DB2INST3 nela 
appl#1.torolab.ibm.c 123-456 boss 
 
2 record(s) selected. 
 

要完成一个特定用户的连接属性列表,发送一个如下查询,该查询返回用户 DB2INST3 的 SESSION_USER GROUP (用户组)和 SESSION_USER ROLE (用户角色名)。

SELECT GROUP as “SESSION_USER GROUP” FROM TABLE 
(SYSPROC.AUTH_LIST_GROUPS_FOR_AUTHID('DB2INST3')) AS T; 
SELECT ROLENAME as “SESSION_USER ROLE” FROM 
TABLE(SYSPROC.AUTH_LIST_ROLES_FOR_AUTHID ('DB2INST3','U')) AS T; 
 

应用程序可以使用 WLM_SET_CLIENT_INFO 流程设置客户机信息属性,以便记录当前在 DB2 数据服务器上使用该连接的应用程序或最终用户的身份,如果没有其他可区分的连接属性可用,则这个身份是必须的。

例如,以下语句设置此前检索到的应用程序识别信息:

CALL SYSPROC.WLM_SET_CLIENT_INFO('nela', 
'appl#1.torolab.ibm.com', 'boss', '123-456', 'AUTOMATIC'); 

一旦您已经识别了在您的数据服务器上运行的工作,根据应用程序和用户的类型和业务优先权将它们划分为不同的组。在一个数据仓储环境中,以下示例小组可能适用:

日常报告查询——通过系统授权 ID 这样的连接属性识别。

特殊的或复杂的查询——通过客户机用户 ID 或应用程序名识别。

用于实时数据仓库的 ETL 作业——通过应用程序名识别。

通过优先权设置获取一致的响应时间

响应时间的一致性在数据仓库环境中很关键。在服务级别协议生效的地方,响应时间可能是强制性的。

通常,至少有两个用户或应用程序组存在于一个数据仓库环境中,一个“轻型”小组运行拥有较短运行时间并需要较少资源(比如日常报告)的简单或至多是中度程度开销的查询,一个“重型”或高级用户小组运行需要较多资源的复杂的特殊查询。有些用户可能获准提交其他关键查询,这些查询(有时称为“VIP ”或“CEO ”查询)拥有比其他工作更高的优先权。

一个服务类的优先权需要与其他服务类的优先权相比较,以便确定资源分配。为了确保短期和关键查询拥有一致的响应时间,允许这些查询在一个具有更高优先权的独立服务类中执行。将由高级用户提交的复杂查询放置到一个具有较低优先权的独立服务子类中。

首先,创建一个带有两个子类的服务类,然后创建两个识别较重要和较不重要的应用程序或用户的工作负载。将这些工作负载分配给两个不同的服务子类:

CREATE SERVICE CLASS POWER; 
CREATE SERVICE CLASS LOW_PRIO UNDER POWER; 
CREATE SERVICE CLASS HIGH_PRIO UNDER POWER; 
CREATE WORKLOAD HIGH_PRIO APPLNAME('db2bp') SYSTEM_USER 
('DB2INST3') SERVICE CLASS HIGH_PRIO UNDER POWER; 
CREATE WORKLOAD LOW_PRIO APPLNAME('db2batch') SERVICE CLASS 
LOW_PRIO UNDER POWER; 
GRANT USAGE ON WORKLOAD HIGH_PRIO TO PUBLIC; 
GRANT USAGE ON WORKLOAD LOW_PRIO TO PUBLIC; 

在每个语句后提交或使用自动提交命令。应用程序名区分大小写,用户名必须用大写字母指定。

下面,将可能的最高优先权分配给 HIGH_PRIO 服务子类中的应用程序。您可以分配代理优先权和预取优先权。

ALTER SERVICE CLASS HIGH_PRIO UNDER POWER AGENT PRIORITY -20 
PREFETCH PRIORITY HIGH; 

将可能的最低优先权分配给 LOW_PRIO 服务子类中的应用程序。

ALTER SERVICE CLASS LOW_PRIO UNDER POWER AGENT PRIORITY 20 
PREFETCH PRIORITY LOW; 

不属于 LOW_PRIO 或 HIGH_PRIO 工作负载的应用程序被映射到默认工作负载,从而映射到默认用户服务类 SYSDEFAULTUSERCLASS ,该类已经被保留为默认优先权(PREFETCH PRIORITY MEDIUM 和 AGENT PRIORITY 0 )。

要确保系统工作在用户工作之前执行,将系统服务类的代理优先权设置为等同于或高于您为用户服务类设置的最高优先权。

ALTER SERVICE CLASS SYSDEFAULTSYSTEMCLASS AGENT PRIORITY -20 
PREFETCH PRIORITY HIGH; 

如果您在创建或更改工作负载管理对象后想要查看当前 DB2 工作负载管理设置,检查系统目录或使用 db2look 命令。例如,以下命令创建一个 wlm.definitions.out 输出文件,该文件包含数据库 PROD 的当前 DB2 工作负载管理设置。

db2look -d PROD -wlm -o wlm.definitions.out 

定义工作操作集以区分工作类型

如果用户定义的工作负载中出现不同的工作类型,您可以使用工作操作集来区分这些工作类型并对它们区别对待,如 “DB2 服务类”小节的图 2 和图 3 所示。

要使用工作操作集,可以使用以下语句将工作负载分配给一个服务超类而不是一个子类:

CREATE WORKLOAD ALL_PRIO APPLNAME('db2bp') SYSTEM_USER 
('DB2INST3') SERVICE CLASS POWER; 

要区分短期、中期和长期工作,创建一个定义工作类型标准的工作类型组。例如,对于 READ 类型,使用 timerons 中通过优化程序估计的查询成本:

CREATE WORK CLASS SET control_cost 
(WORK CLASS long 
WORK TYPE READ FOR TIMERONCOST FROM 2000001 To UNBOUNDED, 
WORK CLASS medium 
WORK TYPE READ FOR TIMERONCOST FROM 20001 TO 2000000, 
WORK CLASS short 
WORK TYPE READ FOR TIMERONCOST FROM 0 TO 20000); 

现在,您可以使用这个工作类组创建一个工作操作集以将该工作映射到 POWER 超类的 HIGH 、MEDIUM 和 LOW 优先权子类。

CREATE WORK ACTION SET query_cost FOR SERVICE CLASS POWER 
USING WORK CLASS SET control_cost 
(WORK ACTION MAP_LONG ON WORK CLASS long 
MAP ACTIVITY TO LOW_PRIO, 
WORK ACTION MAP_SHORT ON WORK CLASS short 
MAP ACTIVITY TO HIGH_PRIO); 

您还可以使用相同的工作类组来限制开销高的工作类型的并发性(类似于 Query Patroller 方法,只在数据库级别可行):

CREATE WORK ACTION SET query_concur FOR DATABASE 
USING WORK CLASS SET control_cost 
(WORK ACTION limit_long ON WORK CLASS long 
WHEN CONCURRENTDBCOORDACTIVITIES > 2 CONTINUE, 
WORK ACTION limit_medium ON WORK CLASS medium 
WHEN CONCURRENTDBCOORDACTIVITIES > 10 CONTINUE, 
WORK ACTION no_limit_short ON WORK CLASS short COUNT ACTIVITY); 

集成 AIX Workload Manager

在下一个示例中,DB2 工作负载服务类被直接映射到 AIX Workload Manager (WLM) 类,以便集成 DB2 工作负载管理和 AIX WLM 。上述映射完成后,DB2 数据服务器将忽略 DB2 服务类的代理优先权设置。要将此前创建的 DB2 服务类映射到 AIX WLM 类(将在稍后定义),发出以下语句(这个步骤也可以作为原始 CREATE 语句的一部分):

ALTER SERVICE CLASS POWER OUTBOUND CORRELATOR 'Power'; 
ALTER SERVICE CLASS LOW_PRIO UNDER POWER AGENT PRIORITY DEFAULT 
OUTBOUND CORRELATOR 'Power.LowPrio'; 
ALTER SERVICE CLASS HIGH_PRIO UNDER POWER AGENT PRIORITY DEFAULT 
OUTBOUND CORRELATOR 'Power.HighPrio'; 
ALTER SERVICE CLASS sysdefaultsystemclass agent 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • DB2 最佳实践: DB2 Workload Management 工作负载管理最佳实践(下)
  • DB2 最佳实践: DB2 Workload Management 工作负载管理最佳实践(上)

相关文章

  • 2017-06-28DB2 9 基础(730 考试)认证指南,第 6 部分: 数据并发性
  • 2017-06-28用WebSphere Studio Device Developer开发一个基于DB2 Everyplace V8.1的Palm OS应用
  • 2017-06-28IBM DB2前世今生之分布式平台的DB2
  • 2017-06-28如何在AIX平台上把DB2V8升级到DB2V95
  • 2017-06-28使用 WebSphere Information Integrator 自主监控工具维护联邦数据
  • 2017-06-28基于IBM I服务器的DB2自动优化工具
  • 2017-06-28用AWK实现DB2 数据库 Schema的同步
  • 2017-06-28编写操作 DB2 数据的 Web 应用程序(第 1 部分)
  • 2017-06-28DB2 9.7:利用自动维护策略自动回收多维集群(MDC)表中的空间
  • 2017-06-28DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • DB2 9中15个pureXML性能最佳实践
    • 理解 DB2 中列组统计信息
    • 使用脚本加速 DB2 存储过程的开发
    • DB2 9 数据库管理(731 考试)认证指南,第 2 部分: 数据放置
    • xfy 与 DB2 9 XML 数据解决方案,第 2 部分: 交付动态 XML 信息解决方案
    • DB2 Warehouse Enterprise Edition V9.5的安装与配置2
    • 灵活有效的数据仓库解决方案,第 3 部分: 设计并实现仓库 ETL 过程
    • DB2 9 pureXML与CLOB或分解式XML存储之间的性能对比
    • db2 导入导出单个表的操作详解
    • DB2 9和ASP.NET 2.0构建下一代应用程序

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有