Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1376227
  • 博文数量: 205
  • 博客积分: 6732
  • 博客等级: 准将
  • 技术积分: 2835
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-04 17:59
文章分类

全部博文(205)

文章存档

2016年(1)

2015年(10)

2014年(1)

2013年(39)

2012年(23)

2011年(27)

2010年(21)

2009年(55)

2008年(28)

我的朋友

分类: DB2/Informix

2013-08-13 17:28:23

统计的起因是ETL表空间使用了150G,老大觉得这个数量太大了,要揪出是哪些表的原因。开始觉得这个任务很简单,因为已经用过了一些系统表了,然而,到了操作间才发现,syscat.tables表里面根本就没有我想像中的size字段。问了好几个人都说不知道,也不奇怪,做为程序员很少使用这个表的。又不愿意跑回来问老大,也上不了网查资料,只好翻来覆去的看那些系统表。后来发现syscat.tables表中最有可能描绘大小的是NPAGES和FPAGES。后来下来搜索,果然,大小就是用NPAGES*PAGESIZE就可以了。只是,那时候还是没有明白这些含义。还好刚刚又找到了一点东西解决了困扰我一天的问题:
 ● CARD-指出表中数据行的数量
 ● NPAGES-指出包含数据的页面总量
 ● FPAGES-指出分配给这个表的页面总量
● OVERFLOW-指出溢出行的数量
当这些值为负1的时候,表示没有可用的统计信息。要更新统计信息,可以使用runstats工具:
 runstats on table tablename with distribution and detailed indexes all
要使用RUNSTATS工具必须有以下权限之一:SYSADM,SYSCTRL,SYSMAINT,表上的DBADMCONTROL特权或者载入权限。RUNSTATS工具没有任何输出显示,只能查询系统编目表来看到它的结果。我没有使用这个工具,在没有授权的情况下怕对所有的表进行runstats会对系统性能造成影响,所以这次我统计的结果会有误差。
 ETL表中NPAGES最大为1142144,在syscat.tablespaces中得知每页为8192,换算发现,最大的ETL占用空间大概在8.7G,前十个大小的表空间就占用了50G左右。而历史表空间占用更是大,最大的表是ETL的十倍。
阅读(4382) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~