Hatena::Groupmoz-addon

hogezilla RSSフィード

当ページに書かれているコードは、修正BSDライセンスのもと、再頒布して頂いて構いません。

 | 

2009-09-13

SQLiteAnalyzer v1.0 リリース

| 22:28 | はてなブックマーク - SQLiteAnalyzer v1.0 リリース - hogezilla

SQLiteAnalyzerというXulrunnerアプリケーションを作成中。

一応動くところまで行ったのでバージョン1.0としてリリースした。

f:id:teramako:20090913213311p:image

Windows,Linuxでは動作することを確認した。Firefox等のMozilla系アプリケーションに限らず汎用的に使えるはず。

これは何か

SQLite Download PageWindows,Linux,MacOS用のSQLiteデータベースファイルの使用状況(各テーブルやインデックスの使用サイズ/空きサイズ)を解析するsqlite3_analyzerが配布されている。

これを使って各データベースの使用状況を溜め込んで行き、使用状況を統計的に見てみようというもの。

背景

最近、Firefoxのパフォーマンス改善としてplaces.sqliteなどのSQLiteデータベースの再編成が注目を浴びている。

FirefoxのPlacesデータベースはアイドル時間にvacuumされるようになる - Mozilla Fluxでも挙げられているようにFirefox側で再編成しようという動きや拡張機能でも

など幾つか再編成を行うものも出てきている。

しかし、これらは使用状況が今どうなっているかなどは知らせてくれない。

  • 今データベースの状態はどうなのか
  • 今再編成した方が良いのか-
  • 使用していく中どのように使用状況が変化していくのか

闇雲に再編成をするのではなく、まずは現状を数値として出して解析し、それを以って再編成の基準としたい。

そんな思いが2~3ヶ月前くらいから湧き上がっていた中、SQLite Download Pagesqlite3_analyzerを発見し、実行してみた。

このsqlite3_analyzer引数に渡したデータベースファイルの使用状況を標準出力で出してくれる。しかし、そこにはいつ実行したかの情報がない。これでは統計的なデータ収集はできない。日時データを付加してデータを収集する仕組みを構築する必要がある。

というわけで作った。

使い方

まずは、Xulrunner 1.9.1以上と、sqlite3_analyzerを用意。

  1. xulrunner -app path/to/application.ini
    で起動
    • 起動すると3つのツリーのあるWindowが立ち上がる。
    • 何も登録されていないのでツリーには何もない
  2. 解析したいデータベースを File->Add Database のダイアログから選択する
    • 左上のツリーにデータベースが登録される
  3. 左上ツリーのデータベースを選択して File->Analyze から解析を実行する
    • 初回はsqlite3_analyzerの場所を選択する必要がある(次回以降は訊かれない)
    • 使用中のデータベースを解析するのは避けた方が良い
      • 例えばFirefox起動中にそのプロファイルのデータベースを解析するなど
    • ステータスバーにインジケータが表示され、解析中となる
    • 終了するとインジケータがなくなり、"Done"のメッセージ
    • さらに左下ツリーに解析日時(正確には解析が終了した日時)等の情報が出てくる
  4. 左下ツリーの見たいものを選択(複数選択可)
    • 右ツリーに各テーブルやインデックスの使用サイズや空きサイズが表示される

今後

  • 数値として表示されるだけでは分かりにくいので、Canvas等を使ってグラフ表示するようにしようかと思っている。
  • アプリ名も変えたいな
 |