我们的项目有一个数据库功能,可以将数百万条来自查询的记录存储到中间表中,然后连接这些中间表以获得最终结果,并将其存储在最终表中。中间表是模式中的标准数据库表(我们的安全团队不允许动态创建表),并且中间表在函数返回之前被截断。在确定我们的项目所需的数据库存储空间量时,这些中间表是如何计算出所需空间的?在执行这些函数时,我是否需要计算出最终表和这些中间表中存储了多少数据的最坏情况,或者一旦函数返回,中间表中的数据就不再保留,这是否意味着我在计算总体存储需求时不需要将存储在中间表中的数据包括在内?我知道在表被截断和函数返回之前,这些数百万条记录被存储在某个地方,但我正在寻找一个明确的答案。
提前感谢
发布于 2015-10-01 19:26:02
您应该考虑到这个中间表大小的最坏情况。中间表是与目标表相同的表和存储数据的方式。如果您已将数据插入其中,则此数据将驻留在相同的硬盘上(当然,这取决于文件空间设置,但它们通常是相同的)
截断该表时,将从文件系统中删除该表的数据文件,并在pg_class中更改表元数据
https://stackoverflow.com/questions/32029570
复制相似问题