予定表DBにNS Basicで高速アクセスするには?

毎度おなじみmizuno-amiさんの「のこり日」について、ここ数日goyaさんからコメントを頂いていて、すっかりamiさん専属サポート担当になった気分のいなあもです。(笑)
さて、そんな中で予定表DBの構造がNS Basicでのアクセスに適さないので処理速度に時間がかかるというような話をする機会がありました。
説明をしながら、NS Basicで高速にアクセスする方法は無いのかとちょっと考えてみたり。


例えば100件の予定表データから今日のデータにアクセスする方法を考えてみましょう。
これを最初のレコードから順々に読み込むと(NS Basicは確かに処理速度が遅いので)、全件読み込むには時間がかかり、即時性を求められる予定表置き換えアプリには適さないでしょう。

そこでデータの真ん中(この場合は50件目)にアクセスして、日付だけ抽出したとします。
データは確か日付順にソートされているので、50件目のレコードデータの日付が過去の日付なら、それ以前の50件は不要になります。
そこで残った50件の真ん中(25件)でぶった切ってみます。
そのレコードがまだ過去なら先の25件を、そうでないなら手前の25件をぶった切ってみれば、のこり12〜3件まで、さらに半分にすれば6〜7件まで絞り込む事が出来ます。
こうやって絞り込んでいけば、100件のデータも6〜7回検索するだけで目的のデータにたどり着けます。
100件全件検索するのと比べれば10倍以上。
200件のデータでも1回アクセスが増えるだけなので、データ件数が多ければ多いほど有効…な気がします。

まぁ、繰り返し予定のデータも混ざっていたり、今回問題にもなった削除レコードをどう扱うかとか、一筋縄ではいかないので色々と調査が必要ではありますが、暇があったら調査して見る価値がありそうです。

…まぁ、こんな風に脳内プログラミングをしている時間が、実際にプログラムを作成している時よりも楽しかったりするのですが…。(^^;)