2011-02-23 17 views
6

¿Debo mantener abiertas las conexiones sqlite o debería cerrarlas cada vez que termino con las consultas por lotes?¿Debo mantener abierta la conexión Sqlite?

Actualización: Esto es específico de iPhone/iOS si eso hace la diferencia.

+0

No proporciona mucha información. Todo depende de cuánto tiempo transcurra entre sus consultas, la cantidad de datos que ha conservado, etc. etc. –

+2

Abrir una vez y cerrar una vez, será más fácil de manejar que de cerrar y abrir demasiadas veces. Pero si no vas a utilizar, entonces haz recursos gratuitos. –

+1

Generalmente, mi aplicación tendrá acceso al DB sqlite con la frecuencia con la que los usuarios interactúan con la aplicación. es decir, cuando el usuario toca un botón, una fila de la mesa, etc. Me pregunto si es mejor mantener la conexión activa durante toda la vida de la aplicación o abrir y cerrar según sea necesario. Especialmente desde que leí que una vez que cierra las conexiones, sqlite no recuerda los planes de ejecución anteriores, puede haber un golpe de rendimiento al abrir/cerrar. –

Respuesta

8

Mi recomendación general dado que la interacción de la base de datos es impulsada por el usuario, yo diría abierta, haga sus actividades, ciérrela y luego regrésela al usuario. Esto no deja nada en el aire. Suele haber un énfasis excesivo en el rendimiento. El mejor enfoque para las aplicaciones de usuario único que encuentro es suponer que el rendimiento va a estar bien, y luego probarlo de otra manera.

Una de las formas en que se puede probar esto es en algún código de prueba de cuánto tiempo lleva abrir y cerrar una conexión. Lo siguiente es intentar conjuntos de acciones, uno con cada estrategia. Esto debería convencerte.

Las desventajas de dejar su conexión abierta generalmente superan (una vez más, en aplicaciones de usuario único) los beneficios de mantenerla abierta.

Esa es mi 2 centavos,

+2

Ese es un enfoque muy sensato. Como desarrollador, siempre tengo que luchar contra la tendencia a hacer pre-optimización que generalmente causa más dolores de cabeza. –

Cuestiones relacionadas