Buen día expertos, estoy realizando una actualización del valor de un campo de usuario (UDF) dentro de una cotización mediante una página web, el problema que se presenta es que se dispara mucho el consumo de CPU del servidor al realizar dicha operación, y quería consultar con ustedes si la forma en la que realizo el proceso es la correcta y éste consumo de recursos es normal.
Mediante el clic de un botón mando a llamar la siguiente función:
private void ActualizarUDF(int cotizacion, string status)
{
if (oCompany == null || !oCompany.Connected)
this.ConectarCompany();
oQut = oCompany.GetBusinessObject(BoObjectTypes.oQuotations);
try
{
if (oQut.GetByKey(cotizacion))
{
oQut.UserFields.Fields.Item("U_Transferido").Value = status;
if (oQut.Update() != 0)
{
error = "Error al actualizar UDF: " + oCompany.GetLastErrorDescription();
ShowMessage(error, MessageType.Error);
}
else
ShowMessage("UDF actualizado con éxito", MessageType.Success);
}
}
catch (Exception ex)
{
error = "Error en función ActualizarUDF(): " + ex.Message;
ShowMessage(error, MessageType.Error);
}
finally
{
if (oCompany.Connected)
oCompany.Disconnect();
if (oQut != null)
System.Runtime.InteropServices.Marshal.ReleaseComObject(oQut);
oQut = null;
GC.Collect();
}
}
Entiendo que es un proceso bastante sencillo, es sólo un campo al que se le cambia su texto, pero al ejecutarlo se detectan estos incrementos en el consumo de CPU:
Pasa de un 2-3 % hasta un 32% el uso del CPU, en la memoria no hay ningun cambio. Estoy haciendo algo mal? O es lo normal?
Cabe aclarar que se distinguen 8 picos de consumo, debido a que realicé 8 operaciones, 4 de ellas en una BD de pruebas, y 4 más en la BD productiva. Luego de éstos picos de menos de un segundo, el consumo de CPU vuelve a su estado regular de 2-3 %.
Agradezco de antemano su tiempo y apoyo en este asunto. Saludos cordiales.