Compartir a través de


Optimizar el uso de la conexión

Establecer una conexión emplea tiempo y memoria tanto en el cliente como en el servidor. Cuando optimice las conexiones, equilibrará el alto rendimiento que precisa con los requisitos de recursos de su aplicación.

El número de conexiones que utiliza Visual FoxPro depende de si usted fuerza o no el cierre de las conexiones no usadas y de la duración que establezca para el tiempo de espera de inactividad de la conexión.

Usar conexiones compartidas

Puede utilizar conexiones de forma exclusiva o bien compartir una conexión. Cada método presenta sus ventajas. Cuando use una conexión de forma exclusiva, su aplicación no experimentará ninguna contención en cuanto a recursos de conexión una vez establecida una conexión. Si cada conjunto de resultados usa una conexión exclusiva, también podrá entremezclar el proceso asíncrono en varios conjuntos de resultados.

Cuando use una conexión compartida, tendrá una conexión para múltiples conjuntos de resultados. Debe serializar las operaciones de manipulación de datos sobre los conjuntos de resultados que comparten la misma conexión y diseñar la aplicación para probar el nivel de ocupación de la conexión cada vez que pueda producirse un conflicto. Para obtener más información acerca de cómo compartir una conexión, vea Crear vistas.

Controlar los tiempos de espera de conexión

Si su aplicación no realiza ninguna acción durante un periodo de tiempo prolongado, puede reducir el uso de la conexión si establece la propiedad IdleTimeout de la conexión. La propiedad IdleTimeout controla el intervalo de tiempo que se permite que las conexiones estén inactivas antes de que Visual FoxPro las cierre. De forma predeterminada, las conexiones esperan indefinidamente y no se desactivan hasta que no las cierre específicamente el usuario.

El tiempo de inactividad de una definición de conexión se establece con la propiedad IdleTimeout de la función DBSETPROP( ); puede establecer la propiedad IdleTimeout para una conexión activa con la función SQLSETPROP( ).

Visual FoxPro cerrará las conexiones aunque las ventanas Examinar y los formularios que muestran datos remotos sigan abiertos y, después, volverá a establecer la conexión automáticamente cuando se necesite de nuevo la conexión. Sin embargo, Visual FoxPro no puede cerrar una conexión si:

  • Hay pendientes resultados de una consulta desde el servidor.
  • La conexión está en modo de transacción manual. Debe confirmar o deshacer la transacción y cambiar al modo de transacción automática para poder cerrar la conexión.

Para establecer el modo de transacción para una definición de conexión, utilice la propiedad Transactions de la función DBSETPROP( ); puede establecer el modo de transacción para una conexión activa mediante la función SQLSETPROP( ).

Liberar conexiones

Puede mejorar el rendimiento si cierra las conexiones que su aplicación ya no utilice. Las conexiones se cerrarán automáticamente cuando cierre una vista. Si la conexión está compartida por múltiples vistas, Visual FoxPro cerrará la conexión cuando se cierre la última vista que usa la conexión.

Puede controlar la conexión para una consulta manual si no desea actualizar los datos de un cursor. Use una consulta de paso a través de SQL para seleccionar los datos que necesita en un cursor local y, a continuación, cierre la conexión.

Vea también

Optimizar el rendimiento cliente-servidor | Acelerar la recuperación de datos | Acelerar consultas y vistas | Mejorar el rendimiento de las actualizaciones y eliminaciones | Acelerar los formularios | Implementar una aplicación cliente-servidor | Crear vistas