ステータスバーに何か表示するアドオンの練習としてComplementSQLiteOptimizerを作ってみました。残回数を表示するだけで変更する機能はありません。
再起動を繰り返しているとたまに負荷がかかるんですが、「恐らくSQLite Optimizerだろう」とは思うものの、既に負荷がかかった後だと確認できずに気持ち悪いので、表示してみました。
アイコン表示とか、回数の変更とか、回数のリセットとか、今回はスキップとか出来ると便利ですね。その内作りたい。
ステータスバーに何か表示するアドオンの練習としてComplementSQLiteOptimizerを作ってみました。残回数を表示するだけで変更する機能はありません。
再起動を繰り返しているとたまに負荷がかかるんですが、「恐らくSQLite Optimizerだろう」とは思うものの、既に負荷がかかった後だと確認できずに気持ち悪いので、表示してみました。
アイコン表示とか、回数の変更とか、回数のリセットとか、今回はスキップとか出来ると便利ですね。その内作りたい。
プロファイルフォルダ直下のDBファイル(*.sqlite)のVACUUMとREINDEXを自動で行ってくれるSQLite OptimizerがFirefox3.5に対応していました。
Firefox3.0.*系のプロファイルにはSQLite Optimizer0.2をインストールしていたんですが、アドオンマネージャから[更新を確認]しても更新はしてくれませんでした。
どっちにしろFirefox3.5.*系のプロファイルには入れてなかったので、AMOから直接インストールになります。
以前との大きな違いは(3.5対応以外では)、about:configでしか設定できなかったREINDEX前のVACUUMが設定画面で設定出来るようになったみたいです。
以前からVACUUM機能も提供はされていましたが、デフォルトはOFFでprefsの"sqlite_opt.vacuum_before_reindex"を直接編集する必要がありましたが、最新版ではチェックボックスにチェックを入れるだけなので簡単です。
動作確認してみた所、urlclassifier3.sqlite(ブラックリストサイトデータ)が32MB→30MB。places.sqlite(履歴データ)が12MB→7MB弱になりました。
問題なく動いている様です。
ちょっと前にこんな事(FirefoxのProfileを縮小)を書きましたが、SQLiteにはVACUUM以外にもANALIZEとREINDEXという操作が可能な様です。
SQLite が認識する SQL - Third impact
REINDEXとANALYZEの厳密な動作内容や、必要性(REINDEXの前後にANALYZEが要るのか?)は解りませんが、とりあえずVACUUM+REINDEXやっとけば動作が速くなるという話しです。
前回はサイズ圧縮が目的だったので、REINDEXはしていませんでしたが、早くなるのであればやった方がよさげです。 (ただ、VACUUMだけでも早くなったという話も見かけました)
SQLite Optimizer :: Firefox Add-ons
こちらを使うと、Profileフォルダの下の全*.sqliteファイルにVACUUMやREINDEXを一括処理をしてくれる様です。前回は一個一個手作業だったので非常に便利に。
スクリーンショットではREINDEXのみに見えますが、設定によりVACUUM+REINDEXに変更できるそうです。ただし、REINDEXがメインなので、VACUUMは(このアドオンで行う事は)あまり推奨していない様です。(miyafx: sqlite 最適化 - Firefox拡張機能)
また、SQLiteの仕様上、頻繁にVACUUMを行うのは逆効果との話。
sqliteのvacuum。auto_vacuum危険 — ありえるえりあ
こちら(VACUUM)を見る限りでは、vacuumとauto_vacuumの動作もバージョンによっては異なる様なので細かい挙動については、要調査ですが。
SQLite Optimizerの設定メニューにある「終了時に(略)実行する」というのは毎回ではなく、(about:configの)指定回数毎みたいです(デフォルト10回)。ただ、再起動もカウントされてしまうので、指定回数をトリガーにした上で、確認ダイアログを出すオプションなどがあれば尚嬉しいですね。
なにかのカスタマイズで頻繁に再起動しているときに、たまに再起動が遅くなるとエラーと勘違いしたり。急いでPCの電源を切りたい時に限って10回目に当ってしまった!なんて事もありそうです。