Username: Password:

了解DB2数据库优化的几条策略
来源:天极Yesky软件频道作者:佚名 发布时间:2007-11-17 00:00:00

 1、 对后续用到的表建立索引(注意在插入数据之前建立或在插入后建立但是要runstats)

  说明:插入之前建立的话,在表插入数据的过程中,索引也随着更新,这样的话需要较大的日志空间,因此速度会比较慢,能够采用不计日志的方式插入;数据差完之后再建立索引的话,该表的日志统计信息没有更新,因此执行计划会很差,用不到索引,runstats on tabble asiainfo.aaaa and indexes all之后,索引统计信息就会更新,这样执行计划会考虑到使用索引,因此速度快。

  2、将比较大的表建在多节点的表空间上,同时建好索引

  说明:现有的db2数据仓库每个节点使用2个CPU,4G内存,DIM表空间计划是存放维表的表空间,因此是单节点的。在使用这个表空间的中的表的时候,最多只会用到2个CPU,4G内存,加上其他的表空间也都要用到这两个CPU和这4G内存,因此资源比较有限。建议较大的表不要放在这个表空间中,而是建立好分区键,放在多节点的表空间中,这样检索这个表的时候32个节点同时检索,最后汇总到0节点上进行展现,速度当然会很的快。另外,虽然32节点并行性好,但是假如建立好索引的话,速度会更快!!

  3、将插入的表使用不计日志的方式插入

  说明:数据库为了确保数据的一致性和可回退性,插入、更新或删除数据的时候要计日志,这样在失败的时候能够回退,但是假如并发较多或操作很大的话,会导致争抢日志的情况,导致操作很缓慢。假如使用不计日志的方式进行插入、更新或删除操作的话,日志使用极少,但是假如操作失败的话是无法回退的,这样一致性得不到确保,这个表只能删除重建!!!!

  4、将表建立表级锁,减少锁数量的使用

  说明:数据库的锁的最大数量是有限制的,并且每个锁都要占一定的内存,因此假如锁的数量很多,使用的内存也就多,导致资源紧张。

  5、建立临时表的时候尽量只插入用的到的数据,不插用不到的数据。

  说明:程式中好多地方为了提高速度,将用到的数据先插入到一个临时表中,但是插入了很多的没有使用的数据,这样导致临时表也很大,所以尽可能的只向临时表中插入用的到的数据,并且尽可能的使用索引,能够大大的提高速度。

  6、关于左关联的一点使用心得

  在on的条件里面尽量的只写关联条件和对左关联的表作限制,而对主表的限制不要写在这里。假如写在里面的话,不但速度很慢,而且可能会出现莫名其妙的结果。

查看本文来源

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅