Estoy codificando para leer archivos xml para actualizar la base de datos. Obtengo unos 500 archivos xml y quiero procesarlos lo más rápido que pueda.¿Es posible ejecutar muchos procedimientos almacenados en una sola operación?
Todas las operaciones de la base de datos se realizan mediante procedimientos almacenados.
Hay aproximadamente 35 procedimientos almacenados diferentes llamados para cada archivo xml.
principio yo había escrito el código como este
var cmd = new SqlCommand("EXEC UpdateTeamStats("+teamId+","+points+")");
cmd.CommandType = CommandType.Text;
pero después de pasar por algunas de las mejores prácticas que lo cambié a
var cmd = new SqlCommand("UpdateTeamStats");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("teamId", 21);
cmd.Parameters.Add("points", 2);
debido al alto número de procedimientos almacenados que se llama desde el programa Me di cuenta de que tenía que hacer menos llamadas para optimizar.
Así que quiero recopilar todos los 35 procedimientos almacenados juntos y ejecutarlos de una vez.
Los procedimientos almacenados son diferentes con diferentes parámetros y no conozco una manera de recopilarlos y ejecutarlos juntos después de los cambios de parámetros que hice anteriormente.
Estaba pensando en llamar a un procedimiento almacenado gigante y dentro de ese procedimiento almacenado llamar a los otros 35, pero no soy muy bueno en SQL y me llevará a una complejidad innecesaria.
¿Es posible hacer esto completamente en C#?
O hay algún otro método mejor que hacer cola los StoredProcedures y ejecutarlas rápidamente
Lo que hacer ¿Espera que ocurra cuando en medio de su ejecución, ha ocurrido un error? ¿Se revertirán todos los procedimientos ejecutados? ¿O simplemente continúa procesando los procedimientos restantes? –
Tenga en cuenta que su título dice "en paralelo", pero al leer su pregunta, parece que solo quiere decir "como un comando de base de datos" –
@GeorgeDuckett: esa fue mi edición. El original fue "de una vez". – Oded