Pro sekvenování používáte GenerationType.IDENTITY, což vyžaduje načítání ID z každého příkazu insert jeden po druhém. Vyzkoušejte schéma sekvenování, které umožňuje předběžné přidělení v dávkách po 500 a uvidíte zlepšení:http://cs.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing#Identity_sequencing