Sybase IQ使用JOIN速度慢



我一直听说Sybase IQ在连接方面工作得很糟糕,在我目前的工作中,主数据模型(Sybase IQ DB(是基于视图的,下面有一个巨大的非规范化表,仍然有很多硬编码逻辑和大量的连接和子查询(深入到5个级别(-所有这些都在一个巨大视图中。

我是错了,还是我认为经典的星形模式仍然会表现得更好,因为任何查询中的联接数量都是有限的(而不是用每个查询计算整个疯狂的视图逻辑(?我在Oracle Exadata之外没有太多经验,但据我所知,像Sybase IQ这样的柱状数据库仍然可以很好地处理联接。

有人可以为围绕它的良好实践提供建议吗?

我想你说的是IQ15.x——一个旧版本,而最新版本是IQ16.1。在我的记忆中,我确实在iq15.2、iq15.4上遇到了一些加入性能问题--将视图创建为";并集所有从3个表得到的结果";然后将此视图与另一个要筛选的小表连接起来。它将执行";union all";首先——通常生成一个巨大的工作台,然后将这个工作台连接到那个小工作台。但对于较新的版本,例如IQ16.0或IQ16.1,它将把小表向下推到这3个表中,首先连接,然后合并3个小结果集,以返回最终结果集。它确实进步了很多。请试一试。

最新更新