Database 一种计算表收缩时有多少可用空间的方法

Database 一种计算表收缩时有多少可用空间的方法,database,informix,truncate,Database,Informix,Truncate,我有一些表,它充当一个队列,可能会在一段时间内容纳数百万行,然后在处理队列时,它会被清空。显然,随着表的增长,db将为它分配更多的空间,并且需要截断表,特别是当队列被清除以释放表中分配的空间时 我想做的是检查如果缩小表,我将得到多少空间,换句话说,我想知道有多少可用空间已经分配给表。我试过了 oncheck -pt <db>:<tables> oncheck-pt: 而且它似乎没有提供多少有用的信息 为什么担心?如果表增长,将重新分配空间。如果它达到应有的十倍大,就把

我有一些表,它充当一个队列,可能会在一段时间内容纳数百万行,然后在处理队列时,它会被清空。显然,随着表的增长,db将为它分配更多的空间,并且需要截断表,特别是当队列被清除以释放表中分配的空间时

我想做的是检查如果缩小表,我将得到多少空间,换句话说,我想知道有多少可用空间已经分配给表。我试过了

oncheck -pt <db>:<tables>
oncheck-pt:

而且它似乎没有提供多少有用的信息

为什么担心?如果表增长,将重新分配空间。如果它达到应有的十倍大,就把它截掉,让它自然生长。您从检查中得到了什么?为什么没有帮助?关于释放多少空间的答案取决于表的索引和分段方式以及截断选项。@JonathanLeffler这里的问题有时是处理队列的应用程序宕机,这意味着表将包含数百万行,并将获得分配的GBs空间,虽然正常运行所需的只是几千行,但我需要截断表以回收空间。但是,在我实际截断表之前,我需要知道将得到多少空间。为什么需要知道将得到多少空间?如果您认为它有太多的存储空间,并且它是空的,请截断它。当我在一个小数据库中最大的表上运行
oncheck
命令时,我会得到4条单独的记录,它们的“物理页”和值介于4和8之间(就像我说的,它很小)。我可以把这些加起来(4+8+8+6=26)。在截断之后,可能仍然分配了一些页面,因此我可能无法返回所有26页,但基本数量大约为每个片段或索引4页。这让你知道你会得到什么。对不起,我写问题的时候喝醉了,我考虑的过程是缩小表格,而不是截断表格。为什么担心?如果表增长,将重新分配空间。如果它达到应有的十倍大,就把它截掉,让它自然生长。您从检查中得到了什么?为什么没有帮助?关于释放多少空间的答案取决于表的索引和分段方式以及截断选项。@JonathanLeffler这里的问题有时是处理队列的应用程序宕机,这意味着表将包含数百万行,并将获得分配的GBs空间,虽然正常运行所需的只是几千行,但我需要截断表以回收空间。但是,在我实际截断表之前,我需要知道将得到多少空间。为什么需要知道将得到多少空间?如果您认为它有太多的存储空间,并且它是空的,请截断它。当我在一个小数据库中最大的表上运行
oncheck
命令时,我会得到4条单独的记录,它们的“物理页”和值介于4和8之间(就像我说的,它很小)。我可以把这些加起来(4+8+8+6=26)。在截断之后,可能仍然分配了一些页面,因此我可能无法返回所有26页,但基本数量大约为每个片段或索引4页。很抱歉,我写问题的时候喝醉了,我想的过程是缩小表格,而不是截断表格。