Purging Unused Triples Is a Never-ending Operation

This is a short post to point out a problem I recently discovered and for which I couldn’t find information online. Hence, in case you hit it, thanks to this short post I hope that you’ll save some time.

The documentation describes a procedure you can use to get rid of dangling triples stored in a semantic network. Simply put, you must execute a PL/SQL block like the following:

  sem_apis.purge_unused_values(flags => 'PARALLEL');

Since one of my customers was/is concerned by the number of dangling triples that are stored in its databases, in October I experimented with the SEM_APIS.PURGE_UNUSED_VALUES procedure. Unfortunately, I quickly discovered that with a non-trivial number of triples it resulted in a never-ending operation. For one specific case I estimated ca. 300 days for one single run! It goes without saying that the issue was recognized as a bug.

Oracle Support provided a patch that I could test today. Note that I can’t share with you the patch number because, as far as I can see, it has no official number (two “references” are provided in the README: “12_1_02_SEM_NOV_30_2017” and “”). Anyway, the essential thing is that according to my tests the patch works. Now the never-ending operation takes less than 3 minutes to complete. Way better!

In case you experience a similar issue, you should open a service request. Oracle Support should be able to help you…