DB 再構築の話なんですけど、今までの話を総合した自分の案です。

・全部空にして一から再構築
 →ゴミデータ除去できる
・dat フォルダの走査と再構築を同期して行う(たぶん build 0031 のような感じ)
 →インジケータとか、ユーザにわかりやすい
 →ひたすら INSERT OR REPLACE する関数をでっち上げる
・再構築中は他の処理による DB アクセス(特に書き込み)を避けたい
 →少なくとも、従来の更新用スレッドは止めるとか

という感じで、既存の SQL 関係の関数についてはエラー処理や効率アップに
励むのがいいのかなぁと思います。