Tengo un C# en el que creo un lector en una conexión (ExecuteReader
), luego, para cada fila en ese lector, realizo otro comando (con ExecuteNonQuery
). En este caso, ¿es mejor que use MultipleActiveResultSets=True
en mi conexión o use conexiones múltiples?MultipleActiveResultSets = ¿Conexiones verdaderas o múltiples?
Respuesta
Se han agregado varios Conjuntos de resultados activos (MARS) específicamente para este tipo de operación para que no tenga que tener dos conexiones abiertas al mismo tiempo para poder leer desde un SqlDataReader Y ejecutar lotes adicionales.
MARS es compatible con SQL Server 2005 y posterior. Citando documentos de MSDN:
Antes de la introducción de múltiples conjuntos de resultados activos (MARS), los desarrolladores tuvieron que utilizar cualquiera de varias conexiones o cursores de servidor para resolver ciertos escenarios.
Para más información ver:
Ejemplo resuelto la lectura y actualización de datos:
MSDN Library - Manipulating Data (MARS) abajo desplazarse a 'Lectura y actualización de datos con MARS'
Hasta donde sé, la razón por la que se agregó MARS, entonces sí, creo que debería usarla.
La mejor manera de probar esto es disparar SQLServer Profiler, y ver qué sucede realmente en el lado del servidor.
Supongo que no será mejor ya que está utilizando ExecuteNonQuery(). Entonces, de hecho, no trabajas con resultados múltiples.
Eso es lo que pensé cuando escribí el código, pero si no tengo MultipleActiveResultSets = True, sigo recibiendo un "Ya hay un DataReader abierto asociado con este Comando que debe cerrarse primero". excepción en ExecuteNonQuery. – Sprintstar
- 1. Múltiples conexiones de websocket
- 2. SSRS: Cómo contar filas verdaderas
- 3. descarga con curl usando conexiones múltiples
- 4. Administración de múltiples conexiones de cliente trenzado
- 5. Zend Framework: ¿Cómo eliminar una fila de la tabla donde hay múltiples cosas verdaderas?
- 6. error 1219. múltiples conexiones a un servidor o recurso compartido por el mismo usuario
- 7. En PHP/MySQL, ¿debo abrir múltiples conexiones de bases de datos o compartir 1?
- 8. ¿Buena práctica? abrir y cerrar conexiones múltiples, o una conexión grande abierta para ado.net
- 9. Conexiones SQLCE: ¿Mantenerlas abiertas o dejarlas cerradas?
- 10. ¿Tenedor antes o después de aceptar conexiones?
- 11. ¿Múltiples conexiones (asíncronas) con urllib2 u otra biblioteca http?
- 12. matplotlib conexiones múltiples a un controlador de eventos?
- 13. ¿Tiene demasiadas conexiones AJAX múltiples y simultáneas mal?
- 14. H2 Conexiones múltiples a la base de datos
- 15. Mongoose.js crea múltiples conexiones a MongoDB de una llamada connect()
- 16. Múltiples conexiones concurrentes de bases de datos en drupal 7
- 17. Crear y administrar conexiones múltiples en Redis Python
- 18. Múltiples conexiones en el mismo socket de puerto C++
- 19. Múltiples conexiones de red simultáneas - servidor Telnet, Python
- 20. Cómo compartir el conjunto de conexiones entre múltiples aplicaciones Java
- 21. Codeigniter - conexiones múltiples a la base de datos
- 22. Cómo detectar conexiones socket.io múltiples del mismo usuario
- 23. Múltiples conexiones/concentradores de señalR en su sitio web
- 24. Formas mejores de encontrar si ambas variables son verdaderas o ambas son falsas
- 25. BroadcastReceiver con múltiples filtros o múltiples BroadcastReceivers?
- 26. Conexiones de socket múltiple
- 27. Doctrine 2 conexiones Maestro/Esclavo
- 28. ¿Por qué las constantes indefinidas se evalúan como verdaderas?
- 29. ¿Hay complementos de Visual Studio para verdaderas 'pestañas inteligentes'?
- 30. devuelve salidas verdaderas 1 pero devuelve salidas falsas nada
+1 por mencionar SQL Server 2005 y superior – pilotcam