Il problema è nella logica non gli indici.
Nel primo esempio scarichi tutta la tabella in memoria e poi la cicli, nel secondo esempio esegui in totale 50 query.
Se vuoi fare come il primo esempio ti scarichi tutta la tabella, tipo "Select * from tabella", e poi cicli all'interno del recordset.