次の例は、クライアント/サーバアーキテクチャにおいて、データの読み込みを飛躍的に高速化する方法を示しています。Regular Importメソッドでは、クライアント側でIMPORT TEXTコマンドを使用して、レコードの読み込みに要する時間を調べています:
通常のデータ読み込みでは、4Dはテキストファイルを解析した後、各レコードに対して新しいレコードを作成し、読み込んだデータをフィールドに入力し、レコードをサーバマシンに送信してデータベースに追加します。そのため、大量の要求がネットワーク上でやり取りされることになります。この操作を最適化する方法の1 つとして、ストアドプロシージャを使用し、サーバマシンでローカルにこの作業を実行するやり方があります。クライアントマシンではドキュメントファイルをBLOB にロードした後、ストアドプロシージャを開始し、引数としてこのBLOB を渡します。ストアドプロシージャではこのBLOB をサーバマシンのディスク内のドキュメントファイルに保存し、このドキュメントファイルをローカルに読み込みます。ネットワーク要求がほとんどなくなるため、データ読み込みはローカルに (ローカルバージョンの4Dと比較可能な速度で) 処理されます。
次に示すのは、CLIENT IMPORTプロジェクトメソッドです。このプロジェクトメソッドはクライアントマシンで実行され、後述のSERVER IMPORTストアドプロシージャを呼び出します:
以下はストアドプロシージャとして実行されるSERVER IMPORTプロジェクトメソッドです:
Note: On Windows プロジェクトメソッドは4D Language ReferenceマニュアルのC_TEXTシステムドキュメントで紹介しています。
これら2 つのプロジェクトメソッドがデータベースに実装された後で、例えば次のように、“ストアドプロシージャベース”のデータ読み込みを実行できます:
CLIENT IMPORT(->[Table1];"Import")
ベンチマークテストを何度か行うと、このメソッドを使用した場合には、通常のデータ読み込みの場合と比べて最高で60倍も速くレコードを読み込めることがわかります。