MySql: ¿Será más rápido usar las declaraciones preparadas para llamar a un procedimiento almacenado con .NET / Connector?

He estado leyendo un poco acerca de las declaraciones preparadas con MySql, y .NET / Connector las admite.

Lo que me pregunto es si uso una statement preparada para llamar al mismo procedimiento almacenado miles de veces, ¿es eso un performance más rápido o mejor que no usar declaraciones preparadas para hacerlo (dado que el procedimiento almacenado realmente debería ser comstackdo ya)?

P.ej:

var mySqlCmd = new MySqlCommand(con, "call sp_someProcedure(@param1, @param2);"); mySqlCmd.Prepare(); mySqlCmd.Parameters.AddWithValue("@param1", ""); mySqlCmd.Parameters.AddWithValue("@param2", ""); for (int i = 0; i < 1000; i++) { mySqlCmd.Parameters["@param1"].Value = i.ToString(); mySqlCmd.Parameters["@param2"].Value = i.ToString(); mySqlCmd.ExecuteNonQuery(); } 

Una statement preparada requiere un mínimo de 2 llamadas db. La primera llamada (preparar) toma la statement sql del nivel de su aplicación, por ejemplo, selecciona * de los usuarios donde user_id =? y crea una plantilla de consulta en la database que luego es analizada y validada. Las llamadas posteriores simplemente implican pasar valores de la capa de aplicación a la database que luego se insertan en la plantilla y se ejecutan.

Ya existe un procedimiento almacenado en la database. Se ha analizado y validado durante la creación. Un procedimiento almacenado es un poco como la plantilla mencionada anteriormente pero es una característica permanente de la database, no una temporal.

Por lo tanto, para ejecutar un procedimiento almacenado solo necesita pasarle parameters: no necesita prepararlo.