direi che finora è ben lungi dall'idea di ottimizzazione

io ti consiglierei di pacchettiizare i dati ovvero raccogliere una quantità di dati in menoria o in un file (preferibilmente binario) e fare inserimenti di insiemi di dati e non di ogni singolo ricevimento
per quanto riguarda la transazione devi considerare la mole dei dati difficilmente riuscirai a infilarli tutti dentro la stessa transazione