楼主: ~贝贝~

[Tips] 《DB2设计与性能优化》作者做客ITPUB,举办DB2提问有奖活动,活动结束!

[复制链接]
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
71#
发表于 2011-5-15 17:27 | 只看该作者
db2表分区后对分区内/间并行有帮助?下个版本准备支持更多分区类型?
我到目前看不到分区内并行比单进程(见55#)的优势

使用道具 举报

回复
论坛徽章:
27
开发板块每日发贴之星
日期:2008-01-17 01:06:29ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04紫蛋头
日期:2013-06-07 17:04:33马上有房
日期:2014-02-18 16:42:02懒羊羊
日期:2015-03-04 14:52:11秀才
日期:2015-08-24 09:51:48秀才
日期:2015-09-17 09:11:05天蝎座
日期:2016-01-04 11:15:24迷宫蛋
日期:2016-02-03 16:13:47咸鸭蛋
日期:2016-02-03 16:14:11
72#
发表于 2011-5-15 17:31 | 只看该作者
db2中数据库分区如何查看一个表的分区键(DISTRIBUTE BY HASH)是否分布均匀?
db2表分区似乎是预分配空间的,如果要建一个按小时分区的表,1年时间表空间就用完了(表空间有对象个数限制),如何解决?按天分区?
db2表分区的全局索引在9各个版本中有何区别?
另外能否提供一份DB2中CATALOG VIEWS的文档

[ 本帖最后由 ts12345 于 2011-5-15 17:37 编辑 ]

使用道具 举报

回复
论坛徽章:
4
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:52ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24
73#
发表于 2011-5-15 18:20 | 只看该作者
谢谢回复。
   先就第三个问题说明下。
>>三、曾和某大型券商交流,从他们的证券集中交易系统HACMP+HADR使用经验看,最终只起到DR的作用,HA总是让人扼腕叹息。某人说NEAR-REAL-TIME-IN-SYNC是钱的问题,有多少钱就有多near。不清楚中国银联的高可用设计,感受不到钱多好办事^_^
<<这个问题客户是不是为了调侃你?据我的经验,我们的很多客户都对HADR的HA功能很认可,包括雀巢,百事等等。我没有听说过客户抱怨HACMP+HADR只能起到DR的作用。如果证券系统的使用感受真的这样的话,我想我们要必要拜访一下他们,好好听一下客户的痛苦点。如果确实是这种情况,我们可以想一些办法对产品进行改进;如果是因为客户的使用问题,我们也可以帮他们做一下部署上的调整。客户有没有告诉你证券商为什么这样抱怨?
    看到回复中开头说的“客户”一词,刚开始觉得有点突兀,还愣了下才回过神来,我就职于一家上市银行的总行,“客户”这个词习惯上是银行业务服务的对象,比如取款的储户^_^
    问题中写的“最终只起到DR的作用,HA总是让人扼腕叹息”无意表达“HACMP+HADR只能起到DR的作用”,文字上“只起到”是表示惋惜遗憾的意思,不是“只能起到”,绝无任何责难之意。这个问题背景来源于和09年和一家上市券商的信息技术部总经理助理的谈话,对方和你同姓,对DB2和ORACLE数据库甚为熟悉,你或许认识。因网上交流如果提及各方所工作的公司,沟通过程没那么自然,这里不指明了,站在个人兴趣爱好角度探讨吧。当时他问起银行这边HACMP+HADR的使用情况,这边因为用在管理系统,生产上切换演练是OK的,没有实际故障接管的案例;券商那边的集中交易系统地位相当于银行这边的核心业务系统,连续可用性要求非常严格,交易期间不幸碰到failover几分钟过不去,后一直改为手工离线做最近几分钟的log shipping,相关情况那边有报给供应商。当时还提到有交易高峰,主机busying相当一段时间,备机不确定主机是否fail,一直没去自动接管的案例,这个案例就不确定是券商那边的案例还是他那边有别的同业交流听来的,我没有深问细节,后面也没再有过这方面的交流。
    关于第六个问题“范围集簇表(RCT)除了TPC-C外,有实际的使用案例吗”,因为DB2 8.1.4引入的Range Clustered Table需要预留空间,加上实际工作中没有这方面的需要,即使有相似的应用场景也有替代的设计方式得到RCT的优点,问这个问题是想知道有没有关于RCT的一些巧妙运用的实用案例。
    第八个问题“关于transition table过渡表特性,如果在一条sql中定义多个含transition table的cte,因为是打开游标时提交,这些ctes的多个游标是同时打开的还是按定义时的先后次序打开的?如果是先后打开的,那么sql执行中间出错的话就会导致部分提交?这个特性据说正在sql标准化当中,目前进展如何?部分提交导致单条sql事务不完整是它的困难之一?”,是我非常关心的,能解答下吗?
    问题背景来源于数年前看过Toronto Lab的Andreas Behm, Serge Rielau, Richard Swagerman合写的《Returning Modified Rows – SELECT Statements with Side Effects》,在sql的select语句中执行update、delete数据修改操作很漂亮,文中提到在公共表表达式CTE中定义的transition table过渡表是do-at-open的,如下:
with cte_tt1 as
     (select id,name from new table
            (insert into emp(name)
             values 'Peter1', 'Paul1', 'Mary1')
     )
select * from cte_tt1;
sql内部按照do-at-open语法执行是这样:
declare emp_cur cursor with hold for
select id,name from new table
(insert into emp(name)
values 'Peter1', 'Paul1', 'Mary1');
open emp_cur;
commit;
fetch emp_cur;
...
那么,当定义多个transition table过渡表的公共表表达式ctes:
with cte_tt1 as
     (select id,name from new table
            (insert into emp1(name)
             values 'Peter1', 'Paul1', 'Mary1')
     ),
with cte_tt2 as
     (select id,name from new table
            (insert into emp2(name)
             values 'Peter2', 'Paul2', 'Mary2')
     )
select * from cte_tt1
union all
select * from cte_tt2;

内部实现do-at-open语法是按定义时的先后次序来的吗:
declare emp_cur1 cursor with hold for
select id,name from new table
(insert into emp(name)
values 'Peter1', 'Paul1', 'Mary1');
open emp_cur1;
commit;
fetch emp_cur1;
declare emp_cur2 cursor with hold for
select id,name from new table
(insert into emp(name)
values 'Peter2', 'Paul2', 'Mary2');
--假如这里出错,因cte_tt1插入的数据已经提交,这个sql不能重复执行,和db2 9.7引入的自治事务特性类似,不能rollback了,变成部分成功^_^ETL类应用经常单条sql用多个过渡表修改大量数据,使用上需要特别顾忌,高并发OLTP情况下常见的应用场景将一表的单条数据修改或删除的同时将旧记录插入到另外一张表亦如此,设计上不得不经常使用MERGE语句。(这里插一下题外话,db2 zos上最新V10的时光穿梭time travelling功能,把一表的记录进行插入或修改的同时,自动在历史表进行拉链记录,采用了和过渡表不一样的底层机制,从而保证整个事务的完整性?)
open emp_cur2;
commit;
fetch emp_cur2;
...

CTE因为实现递归的关系,舞动DB2系列关于开发的书想必会写进去。推荐把transition table(old final new)也写进去,因为是sql语法,比SQLSERVER和ORACLE在存储过程里使用old new触发器变量用起来简单。


原帖由 王飞鹏2011 于 2011-5-13 16:58 发表
您好!首先感谢您对我们的支持。关于Infomix暂且不评论,下面回答几个,供参考:

>>一、DPF有什么好的高可用方案
ISAS里面集成了HA的方案。不知道好的程度能不能达到客户的要求。也就是有一台备机,当DPF中的一台机器出现问题的时候,就在备机上takeover那个机器上的所有资源。
DB2有一个工具叫db2haicu,里面配置的时候有DPF的高可用性方案,有两种:N+1和N+M。但是cluster manager是使用DB2集成的TSA。目前我们中国的客户还没有采用过这个方案。

>>二、HADR会向INFORMIX的MACH11发展吗
不会,没看出来MACH11有什么优势。

在下一个版本里面,HADR的功能得到了很大改善,包括监控上的增强。其中两个最大的功能是开始支持多点灾备,支持DPF和purescale。加上这两点,我的感觉是HADR的功能要强于INFORMIX MACH11.

>>三、曾和某大型券商交流,从他们的证券集中交易系统HACMP+HADR使用经验看,最终只起到DR的作用,HA总是让人扼腕叹息。某人说NEAR-REAL-TIME-IN-SYNC是钱的问题,有多少钱就有多near。不清楚中国银联的高可用设计,感受不到钱多好办事^_^
这个问题客户是不是为了调侃你?据我的经验,我们的很多客户都对HADR的HA功能很认可,包括雀巢,百事等等。我没有听说过客户抱怨HACMP+HADR只能起到DR的作用。如果证券系统的使用感受真的这样的话,我想我们要必要拜访一下他们,好好听一下客户的痛苦点。如果确实是这种情况,我们可以想一些办法对产品进行改进;如果是因为客户的使用问题,我们也可以帮他们做一下部署上的调整。客户有没有告诉你证券商为什么这样抱怨?

最后,是关于federation server。在下一个版本(代号为:Galileo)里做了改进, 不用创建nickname也能访问远程表。使用方式为:..
以后可能会做进一步,采用 “实例名@表名:机器名”的形式访问远程表。
另外federation server 支持drda数据源的两阶段提交。

使用道具 举报

回复
论坛徽章:
2
ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262012新春纪念徽章
日期:2012-01-04 11:53:29
74#
发表于 2011-5-15 18:44 | 只看该作者

关于存储过程中runstats 的 效用

关于存储过程中runstats 的 效用


请教个问题:

create procedure dw.proc1(
      v_date  date
)
begin

declare global temporary table session.tb1(
      c1 char(2),
      c2 char(2)
);

insert into session.tb1
select
      c1 , c2
from dw.tb1;


CALL SYSPROC.ADMIN_CMD('runstats on table session.tb1 with distribution on all columns and index all');

select *
from session.tb1 a
  inner join dw.tb2 b  
    on a.c1 = b.c1
where b.date = v_date
;

end;

请问在这个存储过程中对session.tb1执行的runstats
CALL SYSPROC.ADMIN_CMD('runstats on table session.tb1 with distribution on all columns and index all');
是否会对后面的程序产生影响?
如果runstats对后续的执行计划产生影响的话,那它如何影响的?
存储过程根据变量v_date的值在运行的时候生成执行计划,是在运行前一次生成所有的执行计划,
还是分步生成执行计划,如在runstats前对insert into session.tb1生成执行计划,在runstats后,根据runstats结果对后面的select语句生成执行计划?

使用道具 举报

回复
论坛徽章:
359
生肖徽章2007版:龙
日期:2014-11-09 15:23:50生肖徽章2007版:马
日期:2015-07-25 06:25:50生肖徽章2007版:猪
日期:2014-11-09 15:23:50蜘蛛蛋
日期:2014-10-22 19:22:25鲜花蛋
日期:2014-10-22 19:22:25咸鸭蛋
日期:2014-10-22 19:22:25茶鸡蛋
日期:2014-10-22 19:22:25紫蛋头
日期:2014-10-22 19:22:25复活蛋
日期:2014-10-22 19:22:25迷宫蛋
日期:2014-10-22 19:22:26
75#
发表于 2011-5-15 19:19 | 只看该作者
不懂DB2

使用道具 举报

回复
论坛徽章:
10
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:262011新春纪念徽章
日期:2011-01-04 10:35:48ITPUB十周年纪念徽章
日期:2011-11-01 16:25:512012新春纪念徽章
日期:2012-01-04 11:56:44
76#
发表于 2011-5-15 20:41 | 只看该作者
我是oracle的运维DBA,很想学下DB2,我有以下几个问题询问
1,DB2故障处理的思路?
2,DB2性能优化的思路?在我的工作中,我感觉oracle的性能优化其实主要是优化sql语句,各种性能问题非常多都是由sql的执行计划突变引起的。
3,DB2提供了哪些资源或者工具吧,来为我们进行优化提供帮助。比如ORACLE的awr,ash等报表及10046等各种trace。
4,DB2的报警监控需要监控哪些内容?像ORACLE我们一般监控连通性,表空间使用率,内存、CPU使用率,等待事件,长会话,大量回滚段占用等等。

TKS

使用道具 举报

回复
论坛徽章:
1
ITPUB知识分享者
日期:2011-04-27 17:19:08
77#
发表于 2011-5-16 08:43 | 只看该作者
原帖由 wutongyezi1 于 2011-5-15 20:41 发表
我是oracle的运维DBA,很想学下DB2,我有以下几个问题询问
1,DB2故障处理的思路?
2,DB2性能优化的思路?在我的工作中,我感觉oracle的性能优化其实主要是优化sql语句,各种性能问题非常多都是由sql的执行计划突变引起的。
3,DB2提供了哪些资源或者工具吧,来为我们进行优化提供帮助。比如ORACLE的awr,ash等报表及10046等各种trace。
4,DB2的报警监控需要监控哪些内容?像ORACLE我们一般监控连通性,表空间使用率,内存、CPU使用率,等待事件,长会话,大量回滚段占用等等。

TKS


针对提问我有几点分享给您:

1、 PAT方法学是对DB2系统故障定位方法论的一种绝好的诠释,并且通过了大量实践验证。 其拼写为: Problem Addressing Tree,即简译为问题定位树。 在《DB2设计与性能优化 原理、方法与实践》的最后一页有一张精致的彩色插图,即为PAT树。PAT树如何迅速分解繁乱的现实技术故障问题? PAT树如何帮助DBA迅速定位问题? PAT树如何帮助性能优化人员找到最佳优化途径? 在这本书的第二章有详细介绍,并且PAT树是这本书的一条红线,你在整本书大量案例和各章技术点上,都能看到PAT树提供的讯息。就像所提问的问题一样,PAT树本身就是一种问题定位、性能优化的思路,这种思路一直贯穿全书。

2、 性能优化的思路同上。
    您提到的“我感觉oracle的性能优化其实主要是优化sql语句”, 建议阅读本书第八章:SQL语句性能优化实战。 许多文字都是从内核角度来分析SQL的执行表现的,并且内含许多举例,并且可以结合章尾的《案例分析总结》,对现实中遇到的大规模SQL优化进行了实战解剖,你一定会从中得到启发。

3+4 、 这里包括资源管理和性能监控或者说为系统监控。DB2所提供的性能监控的途径诸如快照监控、事件监控、db2pd监控等; 还有DB2提供的系统监控的方法,诸如对CPU、内存、I/O等的监控方法; 还有DB2提供的一些高级监控工具诸如db2top、控制台、Optim性能优化器等。

使用道具 举报

回复
论坛徽章:
0
78#
发表于 2011-5-16 16:04 | 只看该作者
占位

使用道具 举报

回复
论坛徽章:
0
79#
发表于 2011-5-16 18:29 | 只看该作者

使用道具 举报

回复
论坛徽章:
0
80#
发表于 2011-5-16 19:47 | 只看该作者
买过也读过了,感觉这本书表达方式与其他的技术书非常不同,能把许多体系复杂的问题给说清楚,理明白的书太少了。老牛的书抄ibm文档就太多了。

我有个问题:怎么查看每个分区的节点中每个表的容量大小呢?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表