Fix sort order script failing on Oracle

Hi,


I'm struggling to get system_integrity_fix_sort_orders.php to complete on a pretty large install.



The error is:

    Unable to execute query: ORA-01000: maximum open cursors exceeded


It works when I run it on a smaller root node, so I assume it's the amount of data which makes it fail. I've increased the database open_cursors option, but the script just fails after processesing more data, so I'd prefer not to increases it more and more.


Are there any tweaks to the script or similar I can do so it uses less cursors?


Thanks

Ok, I'm pretty sure I have the cursor issues sorted, DAL never closes the cursors.


Adding "oci_free_statement($query);" before $result is returned in executePdoAssoc(…) fixes the scaling issue there.







Now I have hit a segfault :(. I've upped the memory limits inside the script and php.ini to 6000M




    
    ...
    * 1245 items left to process
    * Using 1556.48 MB
    
    - Updating the sort order for kids of: #132715...
    
     [done]
    	- Searching immediate children of: #132715 for branchesSegmentation fault




Any ideas?