我的表很大,接近1 GB,并且该表的大小每周都在增长,它的总行数为1.9亿,我开始从HANA收到警报以对该表进行分区,因此我计划使用列,该列经常在Where子句中使用。
我的HANA系统是具有8个节点的横向扩展系统。
为了比较分区查询性能与此未分区表的性能差异,我在此未分区表的顶部创建了计算视图并记录了查询性能。
我使用HASH方法和服务器数量对该表进行了分区,并记录了查询性能。这样,我可以在服务器之间实现良好的数据分布。我创建了计算视图并记录了查询性能。 令我惊讶的是,我发现与分区表计算视图相比,我的未分区表计算视图查询的性能更好。
这真是令人震惊。不确定为什么非分区表“计算”视图对分区表“计算”视图的响应更好。
我有计划的输出文件,但不确定将文件附加在何处。
让我知道为什么是这种行为。
答案 0 :(得分:1)
好的,这不是一个可以直接回答的直截了当的问题。 我可以做的是列出一些可能会在此处发挥作用的因素:
SELECT
实际上没有提供可以通过用于分区的HASH函数评估的WHERE
条件,则必须始终评估所有分区,无法进行分区修剪。还有其他/更多潜在的原因,为什么对分区表的查询比对未分区表的查询要慢。 SAP HANA Administration Guide中对此进行了详尽的解释。
作为一般指导,只有在无法避免的情况下并且很好地理解查询的访问模式时,才应该对表进行分区。绝对不是您仅“打开”此功能,一切都将正常工作。