关于一个存储过程问题的解决

May 4th, 2009 by admin No comments »

一个哥们转过来一个问题,一个金融行业的客户在部署应用的时候,发现当应用在作汇总数据的时候,随着数据的增加,处理性能呈非线性的降低,现在在处理到6000万条记录的时候,系统变得停滞,存在大量的I/O Wait.和排序溢出。
接到case后,因为不能直接连接客户的系统上直接察看。所以,我的第一反应是,让系统作一次runstats/reorg。但是客户说,他们每天定时作。于是,我让他们取出”select stats_time, tabname from syscat.tables where tabname = ‘tab_name’,发现果然是比较新的统计结果。没有办法只有让他们发db2support.zip,但是最后客户说他们在内网,大的压缩文件传不出来。晕…,只好让他们先传db/dbm cfg文件过来。发现其中虽然有不合理的地方,但是根据他们的硬件配置来看,不应该导致这样严重的局面。
没有办法,只好让他们把存储过程拿过来看看,发现他们的存储过程,大量的用到游标,然后根据不同的条件,将不同结果集insert到不同的表里面。一个典型的汇总处理过程,没看两眼,我就发现问题所在,客户的存储过程没有用到”临时表”,把这些存储过程改成用到临时表后,把修改后的程序和建立临时表空间的SQL发过去后。让客户重新编译后,客户称将近一亿条的大表处理,都能顺利完成。
可见临时表在大型系统中的数据汇总/排序处理应用中,是相当重要的。
不过,后来这个客户又碰到另外一个问题,也是关于存储过程中对临时表的调用,也蛮有意思的,下次说了。

Oracle收购Sun后,IBM也在行动

April 24th, 2009 by admin No comments »

轰轰烈烈的Oracle和Sun并购案后,IBM的失意溢于言表。作为一个如此大牌的,历史悠久的大公司。他的反应不仅业界,华尔街都在关注,而且像我们这些升斗小民也很有兴趣想看看IBM的应对。

很快,我注意到了最近IBM作出的两个Announce:

1.IBM Announce DB2 9.7 for LUW and InfoSphere Warehouse 9.7.

2.EnterpriseDB and IBM Collaborate to Integrate Technology in New Version of DB2.
请注意EnterpriseDB旗下的产品就是大名鼎鼎的opensource DB:PostgreSQL

很显然,IBM不会眼睁睁的看着Oracle去继续瓜分本来就不太占优势的数据库市场份额。已经有所应对。但是这2个Announce的分量很明显不能和Oracle和Sun并购案同日而语。其实,如果这个时候,IBM和SAP要是联合起来做一些事情,估计就要好戏看了:)
Who Knows,让我们继续旁观。

IBM Announce DB2 9.7 For LUW

April 23rd, 2009 by admin No comments »

在Oracle收购Mysql之际,IBM不甘寂寞的推出DB2 9.7 for LUW.虽然这个版本不是一个革命性的升级,但是有一些新的特性,依然值得我们去关注。

从Announce出来的信息来看,在Compress,Partition table,数据库的管理,开发,XML几个方面都有一些新的改进。另外,我们依然在等待SAP对DB29.7的certification.

也许,对我来说,又一个Migration的项目在等待着我(:

新绿-2

April 4th, 2009 by admin No comments »

» Read more: 新绿-2

免费的短信监控系统

April 3rd, 2009 by admin No comments »

一般来说,对于一个要求高可用性的系统来说除了使用email来通知工程师外,一般来说会用到短信系统来将错误和告警即时发到值班工程师的手机上。我们现在的Global短信监控系统只支持美国的手机号。本来暗自窃喜,以为会减少workload.但是没有短信系统的支持,确实会对系统的监控造成不便。

那么解决办法是什么呢?呵呵,答案就是139.com的手机信箱。

我把监控脚本里面的email地址指到139.com的信箱里面,当139信箱收到任何任何alert,你的手机上面都会即时收到。当然为了更醒目,你需要在subject里面最好有清晰,明确的信息。

改了20多个脚本,不错,反正免费:)

分布式的数据库集群和海量数据存储的一点思考

April 3rd, 2009 by admin 1 comment »

题目很大,如果以为这是篇技术文章,那可就错了:)

过年的时候,回来和几个老朋友见面。大家好像都碰到面临着海量数据存储和数据处理能力overflow的压力。

一个哥们,一直做移动行业的ETL,N久没见。给我的第一个电话,就是讨论详单海量数据能否由过去的集中处理,能否考虑在ETL中使用分布式的集群。

另外一个老朋友,工作在一个亚洲数得着的一个大规模订单处理和流转系统环境里面从事应用架构方面的工作,现在也在考虑数据库层面架构的重构。过年就那么几天,和他喝了一次咖啡,吃了一次日本菜。每次主要讨论的都是系统架构的技术细节(:

至于我,以前从事过移动和烟草的一些项目,也对RAC和DPF,oltp/olap都有一些自己的体验,所以对架构这块也有一些兴趣。虽然目前的公司在我眼里是一个老牌保守的那种正统商业公司,但是随着公司内部”Open Source policy”的发布和Amazon saas这样服务在国外的流行,公司内部的论坛上对saas和cloud的讨论也越来越集中。而且已经有超过60个节点的cluster被用来做CAD计算。

对于db2来说,一直以来我在思考的就是两个问题,在大规模的分布式环境里面如何分离读写IO和DPF如何满足OLTP的要求。前一个问题,几年前和IBM讨论的时候,记得他们的技术人员提到用SQL复制/Q复制来做。对于这点,我是有疑虑的。经过几个项目的体会,这两种都基本上是表层面的,而且SQL复制性能相当一般。Q复制,性能还行,但是对于通道的维护那还是比较麻烦的,也不适合。最近,了解到一些新的解决方案可以帮助我找到答案。另一个问题,虽然听过沈刚的presentation,有一些启发但是这个还得结合应用来考虑。

就国内来说,阿里的Jacky.zhang目前主持的Amoeba+db的分布式架构和mysql的廉价集群项目,无疑是值得期待的。希望他的blog能继续给我们带来更detail的技术细节和更新的技术思路。

Jacky.Zhang,俺看好你哟:)

DB2 System bottlenecks-the overall Picture

April 1st, 2009 by admin No comments »

DB2 System bottlenecks-the overall Picture:

新绿-1

March 28th, 2009 by admin No comments »

北京终于出现难得的蓝天,不出去走走似乎要辜负老天这难得的美意。看看新绿,知道春天已经来了…不过相机实在太弱,很难得到我想要的景深效果。

» Read more: 新绿-1

WWF地球一小时 2009

March 25th, 2009 by admin No comments »

马上加入地球一小时! - bo hu

地球一小时 2009 – 马上加入地球一小时!

DB2 LUW与DB2 For OS390平台架构比较

March 15th, 2009 by admin No comments »

终于看到db2 luw版本和os390版本架构比较的一篇文章,特摘录如下:

DB2 S/390 概念 类似的 DB2 ULWO 概念
编目数据库(DSNDB06) SYSCATSPACE 表空间(tablespace)
目录数据库(DSNDB01) 没有
通信数据库(communications database,CDB),是编目的一部分 数据库目录、节点目录和 DCS 目录
活动日志和归档日志概念 与 DB2 S/390 中的概念类似
支持双重日志记录 支持双重日志记录
引导数据集(bootstrap dataset,BSDS) SQLOGCTL.LFH
使用 -altER BUFFERPOOL 来“创建”预先定义的缓冲区池 使用 CREATE BUFFERPOOL 来创建缓冲区池
高性能池(hiperpool) 扩展存储器(Extended Storage,ESTORE)
资源限制工具(DSNRLST) - DB2 控制器(DB2 Governor)(db2gov)
- 查询巡视器(Query Patroller)
工作文件数据库(DSNDB07) TEMPSPACE1 表空间(系统临时表空间)
TEMP 数据库,用于全局临时表 用户临时表空间,用于全局临时表
缺省数据库(DSNDB04) USERSPACE1 表空间
可以执行涉及不同数据库的表的查询 (如果没有联合(federation))不能执行涉及不同数据库的表的查询
客户机连接到 DB2 子系统,而不是某个数据库 客户机连接到数据库
DSNZPARM(SET SYSPARM 命令使得 DSNZPARM 模块能在 DB2 启动时被装入内存,但对于某些参数,仍然需要 -stop db2 和 -start db2) DBM CFG(需要执行 db2stop 和 db2start,以使新的值生效)和 DB CFG(所有的连接需被终止,以使在下次连接时新的值生效)

» Read more: DB2 LUW与DB2 For OS390平台架构比较

DB2 CLP 环境设置Tips

March 11th, 2009 by admin No comments »

DB2 CLP之与DB2,就是SQLPLUS之与ORACLE一样,是一个交互式的COMMAND的运行环境。一些小的tips,运用其中,可以极大地提高我们的DB2使用效率。

1.Prompt设置

db2set db2_clpprompt=”Product Server>”

db2

Product Server>

可以提示你当前使用的机器名,在多窗口的切换环境下,可以帮助你头脑清醒:)

2.调用历史命令
TEST>connect to test

Database Connection Information

Database server        = DB2/AIX64 9.5.1
SQL authorization ID   = DB2XAC
Local database alias   = TEST

TEST>select count(*) from syscat.tables

1
———–
88728

1 record(s) selected.

TEST>h
1    connect to xac
2    select count(*) from syscat.tables
3    h

重复执行第2条命令:
TEST>r 2
TEST>select count(*) from syscat.tables

1
———–
88728

1 record(s) selected.

编辑第2条命令

TEST>edit 2
“/tmp/aaar4udia” 2 lines, 44 characters
XAC>select count(*) from syscat.tables with ur
Do you want to execute the above command ? (y/n) y

1
———–
88728

1 record(s) selected.

普洱茶

March 7th, 2009 by admin No comments »

开始喝普洱,还是06年在云南昭通的时候。好像那还是我第一次去配HP-UX的MC,完事后就无聊到处转悠。无聊中在一个稍微有点僻静的小巷看到一个茶楼,来到云南,好像不喝普洱,有点遗憾,所以进去。点了壶普洱,找个靠窗的位置坐下。那是一个懒散的午后,阳光透过茶楼的镂花木窗,斑驳得洒在我的肩头。茶楼的小妹,用茶刀从茶饼上面切下一块,放在茶具里面,她的脸庞在淡淡的水蒸气后面有点模糊…让我有点恍惚。一个背着篓子,盘着头巾的老农,来到门口,放下肩上的竹筐,就坐在门槛上,掏出旱烟,放在嘴里搭叭着。一条不知道从哪里窜出来的大黄狗,摇着尾巴在地上不知道在嗅啥。时间仿佛停滞了,偶尔我会接过沏好的普洱,放在嘴边慢慢泯。我想,这一刻我应该真的很放松。回来北京后,就开始喝普洱了,但是好像很难再找回当时在昭通喝茶的心境了.
我想,因为我还是一个俗人吧…..