qqw7 发表于 2008-07-10 18:46

informix数据库drop表后不释放空间

操作系统为hp/ux
数据库系统为informix 9
使用的磁盘阵列。
存放数据的磁盘空间快满了
打算drop些表释放空间;
但发现drop表后,onstat -d 查询,磁盘物理空间并没有得到释放
请坛中高手赐教~~,不胜感激

[ 本帖最后由 qqw7 于 2008-7-10 19:25 编辑 ]

wuicpp 发表于 2008-07-10 21:35

drop应该会释放空间的,是不是你drop的表数据量太小的缘故。

qqw7 发表于 2008-07-11 10:24

谢谢楼上的回答。
删除的表都是占用空间较大的表。
但现在奇怪的是drop表后,在systables中查不到该表了,
但在systabnames中还可以查的到。
并且用systabnames关联sysptnext可以查到该表还占有
数据库空间。

到底是怎么回事呢,请教各位。

liaosnet 发表于 2008-07-11 15:35

做次update statistics 再看看~~

qqw7 发表于 2008-07-13 11:44

已经执行过update statistics了,但是空间还是没有回收。
查询已经被删的表信息时,会提示
unable to resolve object type for: tablenamea
Error: ambiguous column(owner).
的错误。

不知道这种问题是informix本身出的问题还是其他,望指教

czw1413_cn 发表于 2008-07-14 13:43

qqw7 发表于 2008-07-14 18:23

原帖由 czw1413_cn 于 2008-7-14 13:43 发表 http://bbs.chinaunix.net/images/common/back.gif
首先找到比较大的表,用oncheck -pe可以看到每个表占用空间的情况

找到最大就先处理就可以了

找到最大的表之后,用alter table colname old数据类型 new数据类型
然后再改回到原来的数据类型

就可以看到 ...
感谢您的回复,有问题想请教您一下。
1.如果一个表被drop掉后,还可以改变其字段数据类型吗?
2.以前改变表字段的数据类型都是 alter table 'tablename'modify 'colname' 新数据类型
但在dbaccess中进行这个操作时,提示表不存在。

[ 本帖最后由 qqw7 于 2008-7-14 18:24 编辑 ]

liaosnet 发表于 2008-07-14 18:31

你看一下sysextents中的数据跟,oncheck -pe <dbsname> 中的对比。。:em17: :em17:

qqw7 发表于 2008-07-14 19:11

原帖由 liaosnet 于 2008-7-14 18:31 发表 http://bbs.chinaunix.net/images/common/back.gif
你看一下sysextents中的数据跟,oncheck -pe中的对比。。:em17: :em17:
我刚才对比了一下,两边的数据是一样的。都包含有已经被drop掉的表

liaosnet 发表于 2008-07-14 21:31

原帖由 qqw7 于 2008-7-14 19:11 发表 http://bbs.chinaunix.net/images/common/back.gif

我刚才对比了一下,两边的数据是一样的。都包含有已经被drop掉的表

如果某一边存在还说得过去,两边都存在。。。。这似乎问题就难于解释了。。
毕竟oncheck -pe是直接从磁盘上读取的数据,这个显示有表存大,那chunk上的数据还是存在的,自然是没有释放。。
是否是在drop表时出现了错误??导致表没有删除成功?
页: [1] 2
查看完整版本: informix数据库drop表后不释放空间