5

执行多个 SQL 语句而不将它们放入一个事务中是一个严重的瓶颈(参见例如http://www.sqlite.org/faq.html#q19)。我还没有彻底检查 SQLite 在 Android 上是如何配置的,但有趣的是,当在更多地方使用事务时,我发现我的应用程序中的性能显着提高。

是否可以检测到使用 StrictMode 忘记使用事务的实例?如果没有,是否可以考虑将其用于 StrictMode 的未来版本?检测起来可能有些棘手,但两种不同的策略可能是,1)事务外的非选择语句,或 2)在短时间内执行的事务外的多个非选择语句。

4

1 回答 1

3

是的,这听起来是件好事。我可以想象这样的 API:

StrictMode.catchWritesOutsideTransactionsOn(SQLiteDatabase db);

我们一直在考虑在 StrictMode 中使用其他 SQLite 挂钩(主要是围绕选择缺失的索引等),但这也是一个好主意!

于 2010-12-14T22:56:01.250 回答