我已经找到了很多有关如何调整和优化Postgres for OLTP应用程序性能的在线和打印指南,但我还没有找到任何特定于Data Warehousing应用程序的类型.由于工作负载类型存在很多差异,我确信在管理和调优数据库方面必须存在一些差异.
我自己的一些:
我从DDL方面发现我更自由地使用索引,因为我通常只担心每天插入一次并且可以使用索引重建进行批量插入.
我通常会将整数代理键用于通常具有多个自然键的数据,以实现更快的连接
我通常会定义并维护一个非常全面的日期表,该日期表具有预建日期操作(财务日期而不是日历日期,财务年月,一周的开始日期等)并且使用它而不是在select语句中使用函数和哪里的陈述.这通常有助于在CPU绑定的聚合查询期间.
我希望我能找到有关内存管理和其他数据库设置的一些信息,但我很高兴听到任何特定于基于Postgres的数据仓库的有用最佳实践.
从内存管理的角度来看,最大的区别之一是您通常希望将工作 OLTP 集保留在内存中,而 OLAP 环境则不然。此外,通常您的连接集会更大。这意味着较高的 work_mem 设置可能非常有帮助,并且在表非规范化的情况下,这意味着可以将 work_mem 推得比其他情况更高一点。我不确定我对shared_buffers的建议会改变(我更喜欢从低开始并增加,在每一步测试性能),但如果您要对任何大小的集进行报告,work_mem肯定需要增加。
| 归档时间: |
|
| 查看次数: |
3769 次 |
| 最近记录: |