Hola Amigos:
Hice la prueba con una tabla con 40 campos (20 varchar y 20 float). Probe varias veces hacer la inserción con Query y con Dataset (probe 10000 registros). Definitivamente, fue más rápida la inserción con los Querys (según mis pruebas un 15% más rápido mas o menos).
Respecto de las transacciones, en el evento AfterExecute coloco siempre este código:
Código Delphi
[-]
procedure TFDatos.Query_PruebaAfterExecute(Sender: TObject);
begin
if not Transaccion.Active then
Transaccion.Active := True;
Transaccion.Commit;
end;
Gracias por la colaboración!