MS-SQL开发人员在Postgres商店工作(PG 8.4和PG 9.4)
另一个开发人员提到在Postgres SQL中不使用临时表的原因是它会导致Postgres系统表(特别是pg_class)中的碎片导致性能下降。这是真的吗?
干杯
答案 0 :(得分:2)
碎片在应用于数据库表时是一个相当无意义的术语,因为它们总是由固定大小的块组成(PostgreSQL中为8 KB)。
真实情况是,使用临时表将在系统目录表和pg_class
之类的索引中创建条目,当临时表消失时,这些条目将被删除。如果您执行很多,那么同样的事情可能会发生与任何其他大量更新的表一样:autovacuum可能无法跟上,并且您的系统目录表及其索引可能会变得臃肿
现在有a proposal on pgsql-hackers发明了一种新类型的临时表,可避免此类问题。
但是,除非你一直使用很多临时表,否则无需担心。只需在需要时使用它们!