08 febrero 2006

Realización de consultas asíncronas

En este artículo se habla sobre los accesos asíncronos a base de datos, y dice que se aplica a 2 aspectos: la conexión con la base de datos, y la ejecución de un comando (consulta). Por si alguno no lo sabe, con asíncrono queremos decir que el lujo del programa no se queda bloqueado esperando la respuesta de la base de datos, como es habitual, sino que puede seguir haciendo otras cosas mientras se obtiene la respuesta (y así ofrecer una mejor sensación al usuario, que de lo contrario puede pensar que el programa está colgado cuando lo que está es esperando a la base de datos).
Parece ser que este asincronismo sólo está disponible en el framework 2.0 de .NET, no antes, lo cual me resulta extraño cuando ya era posible en ADO 2.5 (en VB6). Tal como antes, no he elaborado mucho esta información, aunque en una primera me da la impresión de que la complicación que requiere y la sobrecarga que causa hacen que sólo deba aplicarse cuando es seguro que la consulta tardará bastante. Si no, los cambios de contexto necesario (entre las hebras) serán más lentos que la propia ejecución de la consulta. ¿Es esto posible? Cuestión de probar con consultas rápidas (la mayoría), a ver qué pasa, y si usamos esta funcionalidad siempre en nuestro acceso a datos o sólo cuando se solicite expresamente.