Todo el proceso completo, incluido los whiles y demás, debería ser un procedimiento almacenado. ¿Por qué? porque al ser un SP, las consultas están ya compiladas en el servidor y te ahorras el tiempo de compilar (qry.prepare). Además no hay tráfico de red, ya que todo se hace desde el lado del servidor, por tanto, es más ágil.
La velocidad propia de cada SQL, ya dependerá de los índices que tengas creado al efecto en la BBDD, y por ende, la eficiencia de cada SQL está condicionado a esos índices y la cantidad de registros afectados por ella.
En resumen: sí debería ser más rápido desde un SP
En cuanto a tu duda del try ... except... bueno, Firebird 2 cuenta con la instrucción MERGE que hace eso, intenta actualizar y si no existe, inserta. Obviamente sin saber tu motor de bases de datos, poco más puedo decir.
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
|