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. Administración de múltiples conexiones de cliente trenzado
- 4. descarga con curl usando conexiones múltiples
- 5. Zend Framework: ¿Cómo eliminar una fila de la tabla donde hay múltiples cosas verdaderas?
- 6. En PHP/MySQL, ¿debo abrir múltiples conexiones de bases de datos o compartir 1?
- 7. ¿Buena práctica? abrir y cerrar conexiones múltiples, o una conexión grande abierta para ado.net
- 8. error 1219. múltiples conexiones a un servidor o recurso compartido por el mismo usuario
- 9. ¿Tenedor antes o después de aceptar conexiones?
- 10. Conexiones SQLCE: ¿Mantenerlas abiertas o dejarlas cerradas?
- 11. ¿Múltiples conexiones (asíncronas) con urllib2 u otra biblioteca http?
- 12. matplotlib conexiones múltiples a un controlador de eventos?
- 13. H2 Conexiones múltiples a la base de datos
- 14. Mongoose.js crea múltiples conexiones a MongoDB de una llamada connect()
- 15. ¿Tiene demasiadas conexiones AJAX múltiples y simultáneas mal?
- 16. Cómo compartir el conjunto de conexiones entre múltiples aplicaciones Java
- 17. Múltiples conexiones de red simultáneas - servidor Telnet, Python
- 18. Múltiples conexiones en el mismo socket de puerto C++
- 19. Crear y administrar conexiones múltiples en Redis Python
- 20. Cómo detectar conexiones socket.io múltiples del mismo usuario
- 21. Desactivar múltiples conexiones de red, sólo permiten una simultánea
- 22. Múltiples conexiones concurrentes de bases de datos en drupal 7
- 23. Múltiples conexiones/concentradores de señalR en su sitio web
- 24. Codeigniter - conexiones múltiples a la base de datos
- 25. Formas mejores de encontrar si ambas variables son verdaderas o ambas son falsas
- 26. BroadcastReceiver con múltiples filtros o múltiples BroadcastReceivers?
- 27. Conexiones de socket múltiple
- 28. Doctrine 2 conexiones Maestro/Esclavo
- 29. Hacer la suma si ciertas condiciones son verdaderas
- 30. ¿Hay complementos de Visual Studio para verdaderas 'pestañas inteligentes'?
+1 por mencionar SQL Server 2005 y superior – pilotcam