Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103593287
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-17 20:28:54

 来源:

DB2数据库理解的常见误区:

一.DSNDB07是100%顺序的

真实情况:DSNDB07从来就不是100%顺序的,因为有工作文件中的对页面进行的随机活动。随即活动可能高达45%,但是通常是3%到10%。

二.将所有东西放在一个缓冲池(BP0)中让DB2管理

真实情况:就像在DB2手册和其他地方说明的一样,你只能在你的内存非常受限的情况下(10000 4k pages或者更少),你没有去管理它,你也没有考虑到性能的条件下,去这样做。最好这样说:不要放置除了DB2 catalog和目录以外的东西进入BP0。

三.逻辑设计应该总是能和物理设计完全映射

真实情况:DB2数据库设计中物理设计应该尽可能的和逻辑结构相近,但是为性能做出的物理设计改变不能被忽略,因为它们并不来自于逻辑设计。

四.VARCHAR应该总是被放置在行末

真实情况:这就是总是引发问题的话。如果表总是被读,并且非常少的更新,那么可以,这将会减少CPU负载,但是在其它情况下这样做就是最坏的,甚至如果表是被压缩的。只有在频繁更新的情况下它应该被放置在末尾,但是并不通常这样。

五.程序应该以遵循逻辑过程的方式编码

真实情况:伪代码或者一个逻辑过程图并不需要考虑性能相关的编码方式。在OLTP代码中这非常具有戏剧性。

六.大多数过程不在SQL中进行

真实情况:事实上,问题的反面往往是正确的。SQL是一个非常丰富的语言,能够处理大多数过程。实际上最大的困难是SQL经常被用来作为I/O而不是一个集合处理器。

七.代码和引用表应该和DB2声明的referential integrity(RI)一起使用

真实情况:RI不应该作为一个编辑有效性的快捷方式而使用,这通常属于别的什么,但是应该在真父子关系中使用。

八.表至多有一到两个索引

真实情况:表应该按照性能需求拥有多个索引。

九.非分割索引(NPI)不应该被使用,尤其是不应该在大的表中使用

真实情况:这关系到数不清的问题,总体上这些都能被克服,但是NPI是对适当的访问和性能非常必要的。

十.大表应该被分割

真实情况:因为一个表中有太多数据就意味着有性能下降,这是一个遗留的担心。当一些表中有超过60亿行数据时,这个理解已经被消除了。

十一.未授权的读是不好的

真实情况:未授权的读其实并不是一个四字单词,但却是一个特别好的性能增强,它可以被用在比经常理解的更多的地方。

阅读(818) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~