2010-12-13 47 views
5

執行多個SQL語句而不將它們放入一個事務中是一個嚴重的瓶頸(請參閱,例如http://www.sqlite.org/faq.html#q19)。我還沒有徹底檢查過Android上如何配置SQLite,但是當我在更多地方使用事務處理時,我發現在我的應用程序中,我感覺到了劇烈的性能提升。使用StrictMode在Android上檢測忘記的SQLite事務?

是否有可能檢測到使用StrictMode忘記使用事務的實例?如果沒有,那麼是否可以考慮將來發布StrictMode?檢測可能有點棘手,但兩種不同的策略可能是:1)非事務外的非選擇語句,或2)在短時間內執行事務之外的多個非選擇語句。

回答

3

是的,這聽起來像是一件好事。我能想象一個API,如:

StrictMode.catchWritesOutsideTransactionsOn(SQLiteDatabase db);

我們一直在考慮其他的SQLite掛接到StrictMode(主要是圍繞選擇丟失的索引和等),但是這是一個好主意呢!

+1

乾杯!缺少索引也會很棒! – jonasb 2010-12-15 01:07:26

+0

等待薑餅打我的Nexus ... twiddle大拇指:) – hunterp 2010-12-17 06:59:01

+0

嘿,薑餅源已經出來了!一步一步來。 :) – 2010-12-18 03:13:45