Tips

一時的にセレクションを保存する

日付2006/09/18
ID06-006
バージョン2004
プラットフォームMac & Win

データベースを最適化する際、クエリの結果、つまりセレクションを一時的に保存する方法が鍵になります。セットは便利ですが、より直接的にセレクションを扱うことができるのは命名セレクションです。(たとえばレコードの並び順を保持したい場合、セットでは対応できません。)

4th Dimensionデータベースエンジンの観点から見た場合、セレクションとはレコード番号のリストであり、その番号はデータファイルに保存されたレコードの物理的な番号(倍長整数)です。

バージョン6.7以来、セレクションを倍長整数の配列に渡したり、逆に倍長整数の配列からセレクションを作成することのできる強力で便利なコマンドが利用できるようになりました。



もしもこのセレクションが、並び順も含めて後から必要になった場合、同じ高度なクエリを実行しなくても結果を直接をクエリするだけで済みます。



データファイルの物理レコード番号はいつでも有効なので、このプログラミングテクニックは安定しており、非常に効果的です。(レコードを削除後に新しく作成した場合には番号が再利用されます。)

データファイルを圧縮した場合、物理的なレコード番号は整理されて再定義されます。その時点で保存してあったセレクションは有効ではなくなるので、一時的に保存してあったセレクションはすべて破棄しなくてはなりません。