Dudas sobre ADO.NET: Conexiones

25/05/2004 - 11:26 por Anonimo | Informe spam
Hola a todos.

Tengo una serie de dudas y a ver si alguien sabe o conoce
referencias por internet que puedan valerme.

Bien, a mi se me plantean dos casos:

1.) ASP.NET - Aplicación Web. En este punto, quuiero
utilizar ADO.NET para la ejecución de SQL y quiero
obtener un rendimiento óptimo. La mejor opción creo que
es utilizar un pool de conexiones, no?.

En Web, hay muchos usuarios que se conectan al servidor
web, y éste a su vez a la BBDD. Lo que quuiero saber es
cómo se implementa ese pool de conexiones, creo que
SqlConnection ya lo tiene; y OleDbConnection ?
OracleConnection ?? y demás como OdbcConnection,
MySqlConnection, etc ?.

2.) Aplicación Windows. En este entorno, también quisiera
optimizar uso de conexiones a BBDD, sabiendo que también
se utilizarán transacciones. De mi experiencia en Delphi,
y algún proyecto que me han comentado, en Windows se
podría tener una única conexión (un único objeto) que
utilizas durante toda la aplicación hasta que se cierra.
No sé si esto es bueno o no.

En fin quisiera saber qué opciones y cuáles serían las
ideales en cuanto al uso de conexiones -ADO.NET- y
cualquuier cuestión que afecte a la capa de base de
datos. Agradecería algún ejemplo concreto y que no me
llevase mucho tiempo tenerlo claro.

Gracias.
 

Leer las respuestas

#1 Rodrigo Meneses
25/05/2004 - 21:04 | Informe spam
Saludos.
Si piensas utilizar SqlServer como tu DBMS entonces usa las clases SqlX
(SqlConnection, SqlTransaction, SqlDataReader, etc)
Por default, en estas clases el pool de connections está activo. La forma de
desactivarlo es agregando "ConnectionPool=false" dentro de tu conection
string.
Esto es válido tanto para Web Applications como para Windows Forms
Applications.
Cómo tu bien indicas, debido a la naturaleza statefull de los windows forms,
podrías reutilizar un solo SqlConnection durante toda tu aplicación: pero
ten en cuenta que no puedes ejecutar dos sentencias SQL bajo la misma
connection, lo cual en ciertos casos te implicará abrir varias connections.
Con respecto a los otros tipos de conexión, me imagino que el Connection
Pool también está habilitado por defecto: recuerda que este feature es de
ADO.NET y no del DBMS.
Si necesitas alto rendimiento utiliza SqlDataReader, que es un cursor
forward only y read only. Si quieres mas abstracción, utiliza los
DataAdapter y los DataSet, que son una excelente elección cuando de
aplicaciónes mutlicapas estamos hablando
Es todo por ahora,
-Rodrigo Meneses
Arquitecto de Software
www.vedantek.com

wrote in message
news:11f4a01c4423a$4d1ae0c0$

Hola a todos.

Tengo una serie de dudas y a ver si alguien sabe o conoce
referencias por internet que puedan valerme.

Bien, a mi se me plantean dos casos:

1.) ASP.NET - Aplicación Web. En este punto, quuiero
utilizar ADO.NET para la ejecución de SQL y quiero
obtener un rendimiento óptimo. La mejor opción creo que
es utilizar un pool de conexiones, no?.

En Web, hay muchos usuarios que se conectan al servidor
web, y éste a su vez a la BBDD. Lo que quuiero saber es
cómo se implementa ese pool de conexiones, creo que
SqlConnection ya lo tiene; y OleDbConnection ?
OracleConnection ?? y demás como OdbcConnection,
MySqlConnection, etc ?.

2.) Aplicación Windows. En este entorno, también quisiera
optimizar uso de conexiones a BBDD, sabiendo que también
se utilizarán transacciones. De mi experiencia en Delphi,
y algún proyecto que me han comentado, en Windows se
podría tener una única conexión (un único objeto) que
utilizas durante toda la aplicación hasta que se cierra.
No sé si esto es bueno o no.

En fin quisiera saber qué opciones y cuáles serían las
ideales en cuanto al uso de conexiones -ADO.NET- y
cualquuier cuestión que afecte a la capa de base de
datos. Agradecería algún ejemplo concreto y que no me
llevase mucho tiempo tenerlo claro.

Gracias.

Preguntas similares