Informix - 如何释放内存?

时间:2016-06-09 06:57:30

标签: memory-management informix

当我删除行时,这些行只被标记为要删除,新数据可以保存在那里,但是可以强制释放内存吗?怎么样?

3 个答案:

答案 0 :(得分:1)

首先,我认为它确实是你所担心的磁盘空间而不是内存。已删除行使用的内存只是页面图像的一部分(如果行大小足够,则为多个页面图像)。

其次,没有办法释放与该行关联的磁盘空间。分配给块的所有磁盘空间仍在使用中。它在创建行之前正在使用,并在删除行后继续使用。 Informix处理分配。

关注点是什么?由于删除了行,您不会在Informix内部或o / s级别用完空间。

答案 1 :(得分:1)

根据您的Informix版本,您可以使用SQL管理API命令 用于存储优化并合并表中的可用空间。

在线或离线使用重新打包操作,并对分区范围进行缩小或碎片整理。

V11.50或以上

•重新打包将行从分区末尾移动到分区上端的空页空间。

•将已清空的扩展区缩小回dbspace。

V12.10

•对表或索引进行碎片整理以合并不连续的扩展区。

见:

管理员指南管理磁盘空间章节

管理员参考SQL管理API函数

答案 2 :(得分:0)

如果要回收已删除行占用的存储空间,可以卸载表,删除表,重新创建表,将卸载的行加载到刚刚重新创建的空新表中,重新创建索引,并更新表的统计信息。请注意,这也将优化表格以提高性能。