我们最近将数据库从Oracle迁移到了Netezza。我们的数据库主要是OLAP数据库,但它的一部分是OLTP,它填充了几个表(前端应用程序)。这些实时表将与很少的历史表连接起来,并生成报告。我们对OLAP部分的性能感到满意,但是OLTP有一个主要的性能问题。在Netezza中改进OLPT的方法是什么?或者是否有任何单独维护OLTP的设计方法?
发布于 2015-01-21 20:51:52
我不建议在OLTP中使用Netezza,但是我们会遇到这样的情况:数据太大了,我们别无选择。在这种情况下,您可以进行一些调优以加快速度。
distribute on和distribute on random的好列,请确保您的表具有良好的distribute on randomorganize添加到您的OLTP操作基于Integer,Date或者,您可以考虑混合设计。
SQL Server或Postgres中为web应用程序执行OLTP操作吗?Netezza。发布于 2015-08-05 19:38:42
对于并行系统的性能,有两个主要的考虑因素:均匀分布的数据;以及将连接的数据的配置。第一点已经得到了解决:选择一个好的分区键,它将为您提供良好的、甚至是数据的分布。
至于我的第二点,如果要加入数据(比如更新),就必须很少或根本没有数据移动。确保这是真的将减少数据流量。确保数据配置的最佳方法是使用相同的分区键。相同的键总是散列到同一个节点;相同的节点意味着没有通信量来进行连接。例如,假设您有Cust (CNo)、Order (Ono)、Order Item (Ono、INo)和(PNo)。主键在括号中。如果将上面的数据用作分区键,则数据将不并置。但是,如果您在Cust中使用CNo,按顺序使用fk CNo,并将CNo的冗余fk按顺序项(全部作为分区键)放置,则它们将被并置。产品不能并置,但不需要配置;它通常没有那么大,在Product中放置CNo是没有意义的。
NOSQL不允许联接,因为它不能确保连接数据的配置(还有其他原因)。在NOSQL中,数据将分布在广泛的节点数组上。
两大性能杀手是品类和笛卡尔产品。确保在Netezza上连接的数据中不存在这些内容。
https://stackoverflow.com/questions/28069369
复制相似问题