It's interesting that you called out the partial cartesian join as an issue - since our badly performing queries I mentioned also generate partial cartesian joins. In our case, it is on purpose to generate additional data - for instance, we plan at a year-level and want to blow it down to the month; or plan at a product category level and blow it down to individual products for reporting. In our case the join order HANA chooses results in gigantic intermediate result sets (e.g. 1000x or more the final result), which results in bad performance. In these cases it would be nice to be able to tell HANA which order to do things in via a hint or some other construct - but in the meantime, local temporary tables are a decent workaround, it just requires using SQLScript for part of your ETL process.
↧