Frage

ohne mehrere SQL-Anweisungen ausführen, sie in einer Transaktion zu setzen ist eine schwere Engpass (siehe zB http: / /www.sqlite.org/faq.html#q19 ). Ich habe nicht gründlich geprüft, wie SQLite auf Android konfiguriert ist, aber anekdotisch ich in meiner auf app dramatische Leistungssteigerung wahrgenommen, wenn Transaktionen in mehr Orten verwendet wird.

Ist es möglich, Fälle zu erfassen, wo man vergisst zu verwenden Transaktionen StrictMode mit? Wenn nicht, könnte das für eine zukünftige Version von StrictMode in Betracht gezogen werden? Es könnte etwas schwierig sein, zu erkennen, aber zwei verschiedene Strategien könnten, 1) Nicht-Select-Anweisungen außerhalb Transaktion, oder 2) mehrere Nicht-Select-Anweisungen außerhalb Transaktion innerhalb einer kurzen Zeitspanne ausgeführt werden.

War es hilfreich?

Lösung

Ja, das klingt wie eine gute Sache zu fangen. Ich konnte eine API wie vor:

StrictMode.catchWritesOutsideTransactionsOn(SQLiteDatabase db);

Wir haben im Hinblick auf andere SQLite Haken in StrictMode (meist um wählen fehlenden Indizes und so weiter), aber das ist eine gute Idee, auch!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top