Esto parece ser una pregunta simple, pero me pregunto las desventajas de no llamar a la función "close()".¿Qué desventajas hay para dejar abierta una conexión SQL?
Respuesta
Además de agotar el grupo de conexiones (como la mayoría de las respuestas hasta ahora lo han sido), corre el riesgo de bloquear los datos.
Si está leyendo o escribiendo en una tabla, algunas semánticas de bloqueo harán que ciertas filas se bloqueen a otras conexiones. Esto es especialmente cierto si tiene alguna transacción abierta en la conexión.
Las lecturas y escrituras pueden fallar y la aplicación lanzará excepciones por todos lados.
En resumen, siempre cierre la conexión.
Tarde o temprano, se encontrará con el error "Se ha alcanzado el límite máximo de conexión". Yo diría que es una gran desventaja.
El grupo de conexiones se llenará y las conexiones nuevas agotarán el tiempo de espera esperando una nueva conexión del grupo.
una conexión al servidor de la base de datos está abierta. supongamos que tiene 100s de programas que golpean el mismo servidor ...
también debería disponer que
rápida respuesta simple es que cuanto antes se cierre, antes de la conexión puede ser reutilizado por la agrupación de conexiones.
"usando usando es bueno" es un poco de mantra me digo cuando conencting a SQL. SqlConnection implementa iDisposable así que simplemente envuelva su código sql en un bloque "using" para asegurarse de que su cierre sea llamado automáticamente. –
Todas y cada una de las conexiones a SQL Server requieren asignación de memoria.
Por lo tanto, cuantas más conexiones tenga abiertas, mayor será la cantidad de memoria que se está usando y reteniendo, lo que potencialmente podría utilizarse mejor.
Si desea saber cuánta memoria utilizan las conexiones en SQL Server, eche un vistazo a la siguiente referencia.
Actualizó su enlace a MSDN, pero a ~ 300K por conexión, esta es probablemente una de las consideraciones menores ... tomará miles, o decenas de miles de conexiones antes de que esto comience a hacerse sentir. –
+1 para el enlace, aunque –
- 1. ¿Cómo puedo mantener abierta una conexión Sql siempre
- 2. ¿Finaliza el uso de cerrar una conexión SQL abierta?
- 3. sql conexión abierta en modo de solo lectura
- 4. ¿Necesito latir para mantener abierta una conexión TCP?
- 5. ¿Es aceptable dejar abierta la sesión de javamail Transport?
- 6. libcurl - Mantener la conexión "abierta" para Cargar varios archivos (FTP)
- 7. Llamar al símbolo del sistema y dejar la ventana abierta
- 8. Conexión de MySql, ¿puedo dejarla abierta?
- 9. ¿HTML WebSockets mantiene una conexión abierta para cada cliente? ¿Esta escala?
- 10. ¿Hay una API abierta/gratuita para registros públicos?
- 11. DbContext no mantendrá abierta la conexión para su reutilización
- 12. Comprobar si hay una conexión abierta con la base de datos asp.net/c#
- 13. ¿Cómo puedo mantener abierta una conexión cuando realizo varias consultas?
- 14. Detectar conexión abortar en una toma abierta por fsockopen()
- 15. Cómo enviar comandos a telnet y dejar la sesión abierta
- 16. Mantenimiento de una conexión Redis abierta con BookSleeve
- 17. 'ExecuteReader requiere una conexión abierta y disponible. El estado actual de la conexión está abierto '
- 18. ¿Hay desventajas al usar VARCHAR (MAX) en una tabla?
- 19. ¿Debo mantener abierta la conexión Sqlite?
- 20. ExecuteNonQuery requiere una conexión abierta y disponible. El estado actual de la conexión está cerrado
- 21. ExecuteReader requiere una conexión abierta y disponible. El estado actual de la conexión está cerrado
- 22. ¿Hay algún daño al dejar que una rama git "envejezca"?
- 23. ¿Buena práctica? abrir y cerrar conexiones múltiples, o una conexión grande abierta para ado.net
- 24. comprobando mediante programación la conexión abierta en JDBC
- 25. ¿Cómo dejar girar una vista para siempre?
- 26. CONEXIÓN SQL mejores prácticas
- 27. OleDbConnection() abre un archivo de Excel en cualquier ventana abierta de Excel. Pero no, si no hay una ventana abierta
- 28. Cambiar BaudRate de SerialPort mientras la conexión está abierta
- 29. ¿Hay una versión sin conexión de JSLint para Windows?
- 30. ¿Es aceptable mantener abierta una conexión de db durante la vida de la página?
¿Incluso después de que el comando sql usando la conexión se hace con las filas? –
Si tiene una transacción abierta, entonces sí. – Oded
Un compromiso debería ser suficiente para evitar ese problema. –