レシーバーで通知受信時にサービスを立ち上げてステータスバーに通知を出す処理を定義しています。
ただ、実際にステータスバーに通知を出すかどうかは サービス内で SQLite を用いて判断します。

現在は サービスに一応 static で SQLite を保持しており、
onStartCommand で null だったらデータベースをインスタンス化しております。
また、 onDestroy にて毎回クローズしています。

とは言え、サービスは毎回終了する度に onDestroy がコールされると思うので
実質1通知を処理するのに毎回 データベースを読み込んでいるかと思います。

データベースのレコードはアプリ起動時に毎回最適化しているのでせいぜい平均50程度と殆ど負荷にはならないかと思いますが、それでも効率が悪いのには変わりありません…
トークアプリのため、通知はたくさん来ます。

SQLiteはネイティブで保持されているとのことで、closeしないことも考えましたが、
やはり、closeしなかった場合はメモリリークが発生しますし…

通知を処理するサービスでSQLiteを使用するにはどのように保持・管理・closeするのがベストなのでしょうか?