Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
We are encountering an issue while performing a full load of the SAP cluster table KONV using Qlik Replicate with the SAPDB endpoint. The table size is approximately 2 TB, and the load consistently fails with the following error:
ORA-01555: Snapshot too old
We understand that, for SAP cluster tables, Qlik Replicate applies an ORDER BY during extraction because these tables store multiple logical records in a compressed format. However, this significantly slows down the extraction process and leads to a very high UNDO consumption.
We have already increased the UNDO tablespace parameters, but the issue still persists.
We would appreciate your guidance on the following:
What is the recommended approach for loading very large SAP cluster tables such as KONV?
Are there any specific performance optimizations or tuning parameters that can be applied in this scenario?
Are there any best practices for handling large SAP cluster tables to avoid snapshot too old errors?
Hi @Sukanya2
Have you tried out parallel load? This multiplies the number of select queries, each of which will fetch a subset of the data which should help prevent this error. The downside is you will have more connections & resource consumption on the source database & network:
Parallel Load | Qlik Replicate Help
Thanks,
Dana
As per my understanding, the parallel load option does not work with cluster tables because an ORDER BY clause is applied during the SELECT on the base table, which forces the extraction to run sequentially.
Could you please confirm if this is correct, and advise if there are any other options or considerations to improve performance?
Hi @Sukanya2
I am not sure if an order by clause is used but a where clause is for sure. I may not be able to test this before you need to know for sure, but if you set up a quick test with logging for Source_Capture set to verbose, you can see the exact query submitted to the source in order to confirm if an order by clause is used or not. Our documentation does not mention that using a clustered table is not supported with parallel load.
Beyond this, the only other suggestion would be to perform the full load during the lowest activity time on the source to limit the amount of undo segments needed during the load. Others might be able to add further suggestions.
You also have the option of opening a support case or checking with your Customer Success Engineer or Professional Services contact if you are engaged with either of those. Check with your Account Manager if you do not have access to these resources and are interested.
Thanks,
Dana