StrictModeを使用してAndroidで忘れられたsqliteトランザクションを検出しますか?
-
09-10-2019 - |
質問
複数のSQLステートメントを1つのトランザクションに入れずに実行することは、厳しいボトルネックです(例を参照 http://www.sqlite.org/faq.html#q19)。 SQLiteがAndroidでどのように構成されているかを徹底的にチェックしていませんが、逸話的には、より多くの場所でトランザクションを使用する場合、オンアプリ内でドラマ的なパフォーマンスが向上すると認識しています。
StrictModeを使用してトランザクションの使用を忘れているインスタンスを検出することは可能ですか?そうでない場合、それはStrictModeの将来のリリースで考慮される可能性がありますか?検出するのはやや難しいかもしれませんが、2つの異なる戦略は、1)トランザクション以外の非選択ステートメント、または2)短期間で実行されるトランザクション外の複数の非選択ステートメントです。
解決
ええ、それはキャッチするのに良いことのように聞こえます。私は次のようなAPIを想像することができました:
StrictMode.catchWritesOutsideTransactionsOn(SQLiteDatabase db);
他のSQLiteフックをStrictModeに検討しています(ほとんどの場合、欠落しているインデックスなどを選択しています)が、これも良い考えです!
所属していません StackOverflow