首页 | 人工智能 | 数据挖掘知识 | 相关研究方向 | 编程技术 | 电脑常识 | 互联网资源 | 交流论坛 | 免费书籍资料下载 | 论文下载 | 文档资料 | 在线手册
人工智能: 信息检索 商业智能 搜索引擎技术与新闻 神经网络 生物信息学 模式识别 知识工程 本体理论与方法 机器学习 决策支持 自然语言理解 专家系统 >>更多
数据挖掘知识:
数据挖掘论文 数据挖掘其他 数据挖掘工具与应用 时序模式 相关研究人员主页 相关方向求职招聘信息 文本挖掘 学位论文 异类 预测 web数据挖掘 >>更多
相关研究方向: 联机分析 信息抽取 小波变换 数据仓库 access数据库 DB2数据库 Mysql数据库 Oracle数据库 SqlServer数据库 Sysbase数据库 统计分析 >>更多
主页>相关研究方向>数据仓库>DB2数据库>

DB2编程序技巧 (六)

来源: 作者:unkonwn 发布时间:2005-09-04

2.2 SQL语句尽量写复杂SQL
   尽量使用大的复杂的SQL语句,将多而简单的语句组合成大的SQL语句对性能会有所改善。
   DB2的SQL Engieer对复杂语句的优化能力比较强,基本上不用当心语句的性能问题。
Oracle 则相反,推荐将复杂的语句简单化,SQL Engieer的优化能力不是特别好。
这是因为每一个SQL语句都会有reset SQLCODE和SQLSTATE等各种操作,会对数据库性能有所消耗。
一个总的思想就是尽量减少SQL语句的个数。
2.3 SQL  SP及C SP的选择
首先,C的sp的性能比sql 的sp 的要高。
一般而言,SQL语句比较复杂,而逻辑比较简单,sql sp 与 c sp 的性能差异会比较小,这样从工作量考虑,用SQL写比较好。
而如果逻辑比较复杂,SQL比较简单,用c写比较好。

2.4 查询的优化(HASH及RR_TO_RS)
db2set  DB2_HASH_JOIN=Y (HASH排序优化)

字串4


   指定排序时使用HASH排序,这样db2在表join时,先对各表做hash排序,再join,这样可以大大提高性能。
   剧沈刚说做实验,7个一千万条记录表的做join取10000条记录,再没有索引的情况下  72秒。

db2set  DB2_RR_TO_RS=Y       
 该设置后,不能定义RR隔离级别,如果定义RR,db2也会自动降为RS.
这样,db2不用管理Next key,可以少管理一些东西,这样可以提高性能。     


2.5 避免使用count(*) 及exists的方法
1、首先要避免使用count(*)操作,因为count(*)基本上要对表做全部扫描一遍,如果使用很多会导致很慢。
2、exists比count(*)要快,但总的来说也会对表做扫描,它只是碰到第一条符合的记录就停下来。

如果做这两中操作的目的是为
       select into 服务的话,就可以省略掉这两步。
直接使用select into 选择记录中的字段。

如果是没有记录选择到的话,db2 会将  sqlcode=100 和 sqlstate=’20000’
如果是有多条记录的话,db2会产生一个错误。 字串7

程序可以创建  continue handler for  exception 
              continue handler for  not found
来检测。
这是最快速的方法。

3、如果是判断是不是一条,可以使用游标来计算,用一个计数器,累加,达到预定值后就离开。这个速度也比count(*) 要快,因为它只要扫描到预定值就不再扫描了,不用做全表的scan,不过它写起来比较麻烦。


3 DB2表及sp管理
3.1 看存储过程文本
select text from syscat.procedures where procname="PROC1";
3.2 看表结构
describe table syscat.procedures
describe select * from syscat.procedures

3.3 查看各表对sp的影响(被哪些sp使用)
select PROCNAME from SYSCAT.PROCEDURES where SPECIFICNAME in(select dname from sysibm.sysdependencies where bname in ( select PKGNAME  from syscat.packagedep where bname="TB_BRANCH"))
字串8


上一篇:DB2编程序技巧 (八)   下一篇:DB2编程序技巧 (十)
版权申明:本站信息收集自互联网,仅供学习参考使用。若有违法转摘您的作品请email我们及时删除!  
用户名: 新注册) 密码: 匿名评论 所有评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
Google
8 热门推荐
  • DB2编程序技巧 (七)
  • DB2编程序技巧 (九)
  • DB2编程序技巧 (一)
  • DB2编程序技巧 (十)
  • DB2编程序技巧 (八)
  • DB2编程序技巧 (三)
  • DB2编程序技巧 (二)
  • DB2编程序技巧 (五)
  • IBM DB2 日常维护汇总(四)
  • IBM DB2 日常维护汇总(二)
  • 8 阅读排行
     
    版权所有:数据挖掘研究院 2004-2006 未经授权禁止复制或建立镜像
    增值电信业务经营许可证编号:皖B2-20040042 文网文:[2005]027号