みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
計算フィールドを参照した計算フィールドや他テーブル参照したものを使用すると、レコードが増えたときに
検索などが遅くなるので、
第一計算フィールドの計算結果を 数字フィールドに代入して、
第二計算フィールドは数字フィールドを参照するようにすると軽くなるでしょうか?
そのために
IF ( フラグ = 1 ; "赤" ; "青" )
という計算結果をやったあと、
第一計算フィールド = 数字フィールド
という計算をさせたいのですが、
IF ( フラグ = 1 ; "赤" ; "青" ) & 第一計算フィールド = 数字フィールド
などとしても計算できません
IF関数終了後、というのはどこに記述したらよいのでしょうか?
また、自己リレーションでも遅くなるのでしょうか?
Offline
非保存の計算フィールドがあると遅くなるのは確かです。
そのIfの計算式は第一計算フィールドに影響しないので、「後」の意味がありませんが。
計算順は基本的にフィールドを定義した順でしょう。計算されたフィールドを参照する計算式のフィールドは、その後で計算されます。
A (計算)C+1
B (数字)
C (計算)B+1
という順にフィールドを定義したとして、Bを変更すれば変更後の値に基づいてCが計算されてAが計算されます。
Offline
フィールドへの参照速度、特に検索やソート、は、索引が作られるかどうかで大きく変わりますね。
索引は、索引を作らないで参照の際に作るような設定、リレーション先のフィールドを参照、索引のないフィールドを参照、していると、索引が作られません。
これを理解されれば、解決すると思います。
上の式について、
IF ( フラグ = 1 ; "赤" ; "青" ) & 第一計算フィールド = 数字フィールド
の結果は、赤0、赤1、青0、青1 という結果を期待されているのでしょうか。
Offline
Pages: 1
[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 504.37 KiB (Peak: 515.16 KiB) ]