中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > DB2
[DB2]数据库设计:取得最佳性能的准则 (7)
作者:佚名 时间:2006-10-12 10:15 出处:it168  责编:月夜寒箫
              摘要:[DB2]数据库设计:取得最佳性能的准则 (7)
7. 空余空间方面的考虑

 

 

  分配空余空间的主要目的是使数据行的物理顺序与群集索引一致,以减少频繁重组数据的需要。此外,对行的更好的群集会使读访问的速度更快,行插入的速度也更快。然而,过多地分配空余空间可能会产生浪费的DASD空间,导致每次I/O只能传输更少的数据,缓冲池的利用效率更低,并且要扫描更多的页。

 

 

  表空间和索引中空余空间的分配是由CREATE或ALTER TABLESPACE以及CREATE或ALTER INDEX语句的PCTFREE和FREEPAGE选项确定的。

 

 

  PCTFREE告诉DB2在装载或重组数据时,表空间或索引中的每个页要留出多少百分比的空余空间。如果没有足够的空余空间来按照恰当的顺序(也就是按群集顺序)编写行或索引,那么DB2就必须将多出的数据放到另一个页上。当越来越多的记录被乱序存放时,性能就会出现问题。

 

 

  FREEPAGE告诉DB2在装载或重组数据时,应该过多久就分配一整页的空余空间。例如,如果指定了FREEPAGE 5,那么DB2将在用数据填充了5个页之后分配一页的空余空间。如果表行大于页宽的一半,则应该使用FREEPAGE,因为在那样的环境下不能在一页上再INSERT一行。

 

 

  是否定义带空余空间的表空间,以及分配多少的空余空间,这很大程度上取决于表空间中表的INSERT特征(其次是DELETE活动)。换句话说,这取决于将行添加到表中的频率,以及将行添加到表的什么地方。下面有4种类别:

 

 

  1) 只读表:如果对于一个表没有任务更新活动,那么可以将其定义为没有空余空间。而且,也没有任何必要去运行REORG实用程序。

 

 

  2) 随机插入:对于已经有很多行、并且INSERT活动的级别很低,那么一开始可以使用默认的PCTFREE(对于表空间,该值是5,对于索引,该值是10)。然后使用RUNSTATS监控数据失序的程度,再考虑您期望运行REORG的频率,对PCTFREE进行必要的上下调整。对于INSERT活动级别很高的表,可能需要使用大于默认值的PCTFREE。对于开始为空或者只包含很少行的表(例如在新数据库的部署期间),可能需要指定一个较高的PCTFREE,并不时地运行一下REORG,直到这个表被填充好为止。

 

 

  3) 在表的末尾插入:如果一个表中的行的长度不会增长,那么就无需分配空余空间,因为这些行是在表的末尾插入的。由于这些行是按照物理的群集顺序来写的,因此不需要运行REORG。但是,如果一个表包含可更新的VARCHAR列,或者该表被压缩,那么有可能行的长度会增长,从而导致某一行被转移到其他页上。您可以通过对表空间执行RUNSTATS,然后检查DB2编目表SYSIBM.SYSTABLEPART的NEARINDREF和FARINDREF这两列来判断上述情况。如果表变得缺乏组织,那么为表空间指定一个PCTFREE,并继续用RUNSTATS监控位置不当(mislocated)的行。根据当前的数据以及您所观察到的趋势,对REORG的频率和PCTFREE的数字进行相应的调整。通过在REORG TABLESPACE中指定INDREFLIMIT和REPORTONLY选项,可以监控被更新的DB2表中位置不当的行的数目,以及隔多远会出现这样的行。

 

 

  4) 在热点(hot spot)中插入:在这种情况下,表上的插入活动很频繁,而且集中在某一个位置(或几个位置),而不是在表的末尾进行插入。这一类情况可能是最难于处理的。可以尝试增加PCTFREE的值。如果插入活动停留在主段(home segment)中,并且插入的行不是很长,那么可以将数行存储在相同的页中。在此情况下,另一种可以考虑的方案是使用FREEPAGE。这时有必要严密监控表变得无组织的速度,这样就可以在性能急剧下降之前运行REORG。
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有