Me encontré con un problema similar recientemente en el que CREAR TABLA TEMPORAL tuvo un costo significativo debido a la reutilización continua. También usé la solución que describe Barranka (crear una vez y truncar cuando termine o antes de reutilizar).
Para aumentar aún más el rendimiento, utilicé tablas InnoDB que se crearon en un disco RAM (ramfs). Esto brinda todos los beneficios del motor de almacenamiento InnoDB con un costo de E/S muy bajo. Esta es una solución mejor que usar el motor de almacenamiento MEMORY que, según el soporte de Oracle, solo está disponible para aplicaciones heredadas y no se ha mejorado ni ampliado durante algún tiempo.