 |
Tips4
ローカルキャッシュ機能 |
 |
|
Delphiの機能であるTClientDataSetを使用することによって、パフォーマンスを向上できます。 |
|
|
処理方法 |
● |
TClientDataSetとは、Delphi独自の機能のことで、クライアントPCのメモリ上にデータを保持することができます。 |
- |
IBM i (AS/400)のデータをTClientDataSetにセットして使用すれば、IBM i (AS/400)へのアクセス回数が軽減される上、メモリ上での操作になるので様々な処理を行うことができ、パフォーマンスが向上します。 |
● |
PacketRecordsプロパティを利用 |
- |
一度のアクセスで取得できるレコード件数を変えることができるのでパフォーマンスの改善が望めます。
(PacketRecordsプロパティについて、詳細は下記参照) |
● |
TClientDataSetでできる様々な処理 |
- |
データがメモリ上にあるので、迅速な処理が可能 |
- |
インデックスを新たに作成することにより、ソート順を変更した表示や、迅速なレコードへの位置付けが可能 |
- |
Filterプロパティに条件式を記述することにより、使用できるレコードに制限をかけることが可能
(注記:アクセスできるレコードは制限されますが、メモリ上にはすべてのレコードを保存しています。) |
- |
データを追加・変更・削除する場合、最後に一括してIBM i (AS/400)への反映が可能 |
|
|
|
注意点 |
● |
TClientDataSetの利用が適さないケース |
- |
リアルタイムなデータを必要とするアプリケーション
(TClientDataSetからIBM i (AS/400)への更新を適用する時に、メモリ上の内容が反映されます。) |
● |
IBM i (AS/400)側でのロックについて |
- |
データの読み込み・更新時には共有ロックが掛かります。その処理後は、ロックは外れます。 |
|
|
|
詳細説明 |
TClientDataSetの使用方法についての詳細はこちら。
PacketRecordsプロパティについて |
例えば、DBGridにデータを表示する場合、データ量が膨大だと全件読み込むには非常に時間がかかるため、なかなかデータが表示されません。しかし「PacketRecordsプロパティ」の値を1画面の表示データ件数分を読み込むように変更するとデータの表示が格段に早くなります。ただ、スクロールダウンする時には次のデータの読み込みが必要になります。反対にスクロールアップする時には、以前のデータがキャッシュ上に残されているので、メモリにアクセスすることで、すばやく表示することができます。
逆にデータ量がそれほど多くない場合だと、「PacketRecordsプロパティ」の値を「-1」にしてすべてのレコードを読み込むようにする方が、データ受渡しの回数が1回ですむので早くなります。 |
|

|