Join result caching for large replicated tables

Details

Detail name Value
Changelog Number 5094
Type Improvement
Status Resolved
Fix Versions Exasol 6.1.0
Resolution Date 2018-09-21

Join result caching is an optimization technique to speed up joins in which the same keys are joined many times. The final matching rows for each key are stored in a dictionary and can be retrieved very fast afterwards.

There is a caching mechanism for global joins with large tables as well as local joins with very small tables. The performance gain can vary significantly but often a considerable amount in network traffic and cpu time can be saved, especially when the rows returned by the index are further reduced by filter expressions on the adjoined table.

Problem
In case of medium sized tables that have more than 100.000 rows but are still replicated in joins (increased replication border), there is no join result caching applied. As a result the local join performance does not scale well with the table sizes as opposed to global joins.

Improvement
Caching mechanism will be also applied to medium sized tables that are joined locally if the optimizer presumes that caching will improve the performance of this particular query. 

Workaround

Set replication border to standard value (100.000 rows).