Objeto de acceso a datos: ¿Singleton o muchos pequeños?
-
05-07-2019 - |
Pregunta
Al desarrollar una aplicación (web, win, lo que sea) que permita el acceso a muchos datos, ¿es mejor mantener abierto el objeto de acceso a los datos durante la duración de la solicitud (es decir, hacer muchas cosas seguidas, luego cerrarlo cuando terminas), o sigues abriendo y cerrando otras nuevas?
protected aDataContext dc = new aDataContext();
vs
private aObject GetInfo(...) {...}
Creo que lo primero sería mejor para el rendimiento; pero parece una mala práctica.
Solución
Normalmente, debe abrir una nueva conexión para cada unidad de trabajo, usarla y luego cerrarla lo antes posible. Internamente .NET (o ADO o ODBC o lo que sea) agrupará las conexiones para usted, siempre que la cadena de conexión sea la misma, por lo tanto, en realidad es muy eficiente. Hay otros aspectos que se deben tener en cuenta, especialmente las transacciones, pero en general es mejor seguir este patrón de abrir y cerrar y dejar que .NET administre el grupo de conexiones.
Otros consejos
Es mejor usar un grupo de conexiones. mantenga un número limitado de conexiones abiertas tanto como pueda. Abrir una conexión es costoso, pero tener millones de conexiones abiertas puede destruir su servidor. debería evaluar su situación para obtener mejores resultados ....