【小技】Selection to JSONをクライアント/サーバーで実行するときに注意点
【小技】Selection to JSONをクライアント/サーバーで実行するときに注意点
Selection to JSONは,カレントセレクションに基づくJSON文字列(オブジェクトの配列)を出力するコマンドです。
特にポインターを使った『差し込み』モードは,必要なフィールドだけを任意の順序で書き出すことができ,とても便利です。
http://doc.4d.com/4Dv15/4D/15/Selection-to-JSON.301-2007546.ja.html
とはいえ,注意したい点があります。
SELECTION TO ARRAYとは違い,このコマンドは『4D Server用に最適化』されていません。つまり,サーバー側でレコードをまとめて処理し,結果をクライアントに返すのではなく,クライアント側で逐一レコードを処理するようになっています。
http://doc.4d.com/4Dv15/4D/15.4/SELECTION-TO-ARRAY.301-3274925.ja.html
実際,リクエストログ(データベースパラメーター#28, 4D Server log recording)を有効にすると,レコード1件につき,3回のリクエストが送受信されていることがわかります。それで,Selection to JSONをクライアント/サーバーで実行すると,処理が非常に遅くなるかもしれません。
http://doc.4d.com/4Dv15/4D/15.4/SET-DATABASE-PARAMETER.301-3274410.ja.html
回避策
Selection to JSONがクライアント/サーバーで遅いように感じる場合,『サーバー上で実行』プロパティを活用し,処理を『4D Server用に最適化』することができます。
http://doc.4d.com/4Dv15/4D-Server/15/Execute-on-Server-attribute.300-2047520.ja.html
特にポインターを使った『差し込み』モードは,必要なフィールドだけを任意の順序で書き出すことができ,とても便利です。
http://doc.4d.com/4Dv15/4D/15/Selection-to-JSON.301-2007546.ja.html
とはいえ,注意したい点があります。
SELECTION TO ARRAYとは違い,このコマンドは『4D Server用に最適化』されていません。つまり,サーバー側でレコードをまとめて処理し,結果をクライアントに返すのではなく,クライアント側で逐一レコードを処理するようになっています。
http://doc.4d.com/4Dv15/4D/15.4/SELECTION-TO-ARRAY.301-3274925.ja.html
実際,リクエストログ(データベースパラメーター#28, 4D Server log recording)を有効にすると,レコード1件につき,3回のリクエストが送受信されていることがわかります。それで,Selection to JSONをクライアント/サーバーで実行すると,処理が非常に遅くなるかもしれません。
http://doc.4d.com/4Dv15/4D/15.4/SET-DATABASE-PARAMETER.301-3274410.ja.html
回避策
Selection to JSONがクライアント/サーバーで遅いように感じる場合,『サーバー上で実行』プロパティを活用し,処理を『4D Server用に最適化』することができます。
http://doc.4d.com/4Dv15/4D-Server/15/Execute-on-Server-attribute.300-2047520.ja.html
miyako- 投稿数 : 468
登録日 : 2016/07/05
Permissions in this forum:
返信投稿: 不可
|
|