紧急救援!!!!一个关于informix数据库优化的问题。

loverVC 2003-08-18 04:40:31
当数据表众多及对数据库进行频繁操作过多时,表中的数据可能分布在多个磁盘和混合其他表中的数据。要避免这种情形,就要生成适当的区域长度(针对某个表的磁盘空间)来进行区域计划和管理。这里可以利用informix数据库提供的oncheck -pe 命令来查看其数据库中的表格结构。我用oncheck -pe命令其输出如下:
Disk usage for Chunk 1 Start Length
--------------------------------------------------------------------
stores7:customer 1000 13
stores7:item 1250 12
sotres7:customer 3000 2500
从这里我们可以看出customer出现了两次,当这种情况出现过多时,便会得到informix数据库的警告!
通常解决这种情况是通过重建这些表,公司中有很多重要数据,所以不能采用这种方法。不知哪位仁兄还能给小弟提供一种建议,在不重建表的情况下通过其他一些命令来完成其优化过程,不胜感激,期待高手的回音。
...全文
32 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiuri0600 2003-08-24
  • 打赏
  • 举报
回复
update statistics low|high|medium fro table [tabkebane]
其中low、high、medium任选一,表示优化的程度,但是时间消耗会不同。
loverVC 2003-08-18
  • 打赏
  • 举报
回复
忘了说了,其informix版本是5.X的,据说7.X的版本已经具备这个功能,即可动态修改数据库中的表记录。
loverVC 2003-08-18
  • 打赏
  • 举报
回复
楼上的回答固然不失为一种好方法,但这样在执行dbexport倒出数据时,里面的数据库要被删除掉,我的意思是在不删除数据库的前提下能否通过其他执行语句对数据库进行动态修改。因为数据在动态变化,若按照楼上的方法再用dbimport倒入到数据库中时,除了原来备份的数据库外还需要根据日志进行再倒入数据中,这样很麻烦而且又花时间,因为我在银行工作,其工作性有不允许,不知道还有没有其他比较好的 方法可否提供,小弟我感激不尽。
wenlq 2003-08-18
  • 打赏
  • 举报
回复
如果知道表的大小和增长速度,可以在建表时候分配合适的extent size ,
使之在足够长的时间内只占用一块空间而又不太浪费空间。

以下语句可能有用,最好dbs1 能做到有连续剩余空间存放该表,这样可以做到该表在一块中。

alter fragment on table tabname
init in dbs1

用dbexport 倒出数据,用dbimport 倒入也可以起到排除表数据交错引起的性能下降问题。

1,194

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 Informix
社区管理员
  • Informix社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧