* Last Updated
4D 2004において、フォーミュラによるクエリはクライアント上で実行されていました。これはすべてのレコードがネットワーク経由で渡され、フォーミュラを適用し、セレクションに加えるかどうか判定されることを意味します。
リクエストのロジックが許す限り、4D v11 SQLはクエリをサーバ上で実行し、ネットワークの過大な負荷を避けます。通常のクエリのように、セレクションのみがクライアントに返されます。
QUERY BY FORMULA (スタンドアロン)のテストで使用した、距離を測るフォーミュラに戻りましょう。
QUERY BY FORMULA(distance($latitudeRef;$longitude;[customer]latitude;
[customer]longitude)<10)
4D 2004では、クエリに8.6秒かかりました。
4D v11 SQLでは、このクエリに要する時間は0.7秒です。
テーブルのレコード数、ネットワークの速度、待ち時間にもよりますが、12倍の速度向上です。
フィールドや変数を使用しても問題はありません。フォーミュラ内でメソッドを使用することもできます。計算に使用される変数を引数として渡す必要があります。そうすることで、4Dクライアントは4D Serverに実行に必要な要素を送信できます。
注: 4D v11 SQLに変換されたデータベースでは、この最適化は環境設定の互換性ページで明示的に有効にしなければなりません。