Pregunta

La ejecución de varias sentencias SQL sin ponerlos en una transacción es un severo cuello de botella (véase, por ejemplo http: / /www.sqlite.org/faq.html#q19 ). No he comprobado a fondo cómo SQLite está configurado en Android, pero anecdóticamente que percibe más de rendimiento dentro de mi dramática de aplicación cuando el uso de transacciones en más lugares.

¿Es posible detectar casos en los que uno se olvida a las transacciones de uso utilizando StrictMode? En caso contrario, podría eso ser considerado para una versión futura de StrictMode? Puede ser que sea algo difícil de detectar, pero dos estrategias diferentes podría ser, 1) declaraciones no seleccione la transacción fuera, o 2) varias instrucciones no seleccione la transacción fuera ejecutada dentro de un corto período de tiempo.

¿Fue útil?

Solución

Sí, eso suena como una buena cosa para la captura. Podía imaginar una API como:

StrictMode.catchWritesOutsideTransactionsOn(SQLiteDatabase db);

Hemos estado considerando otros ganchos SQLite en StrictMode (sobre todo alrededor selecciona los índices que faltan y tal), pero esto es una buena idea también!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top