On Internal Tables & Sort Merge Joins
Posted in 1994
We recently had a long transaction rolled back which locked up our database for a good hour before the rollback completed. The user was not trying to update the database at all but was attempting a query with a three- way join on some very large tables that just happened to NOT have an index on an important column. According to the sqexplain.out report, Informix chose to do a sort-merge join and built a few 100Mbyte files in the process. According to the SQL-Tutorial, Informix builds temporary tables internally before writing out these temp files (P4-29). It appears that the process of building these huge temporary tables kicked off a long-transaction rollback. My question is: Is there any way I can control how Informix builds internal temporary tables? If I were creating these tables explicitly I would set the "with no log" option but I don't see how I can control what Informix does internally. I tried it with "set isolation to dirty read" hoping Informix might take a hint from that but it had no effect. -Ken Miles Vancouver Division Hewlett-Packard kenm@vcd.hp.com Informix OnLine Version 5.00 HPUX 8.0, S750.