Mark,
I was still contemplating alternate solutions for you.. what you are doing is just plain hard and very CPU - I/O intense. I'm glad throwing hardware at the problem helped get it back to acceptable performance.
>Just thought you might be interested to know that after tripling the RAM on the machine (to 384 Meg), the process buzzes by normally (within resonable time). We're pretty convinced that there is some sort of memory limitation on large tables - nothing else seemed to work noticably.