我找到了大量关于如何为 OLTP 应用程序调整和优化 Postgres 性能的在线和打印指南,但我还没有找到任何特定于数据仓库应用程序的内容。由于工作负载的类型存在如此多的差异,我确信在管理和调整数据库的方式上肯定存在一些差异。
我自己的一些:
我从 DDL 方面发现我更自由地使用索引,因为我通常只担心一天一次的插入,并且可以通过索引重建进行批量插入。
对于通常具有多个自然键的数据,我通常会使用整数代理键来实现更快的连接
我通常会定义和维护一个非常全面的日期表,该表具有预先构建的日期操作(会计日期而不是日历日期、财政年度月份、一周的开始日期等)并自由使用它而不是在 select 语句中使用函数和 where 语句。这通常在受 CPU 限制的聚合查询期间有所帮助。
我希望我能找到一些关于内存管理和其他数据库设置的信息,但我很高兴听到任何特定于基于 Postgres 的数据仓库的有用的最佳实践。