Agentry - help to reduce time taken in client exchange step
I have an object that holds 1500-2500 records (depending on the user) and the fetch time is causing a lot of headaches. I am not concerned about the initial loading of the object onto the client device, it is the subsequent fetches that I would like to improve the time taken.
I am using the Maximo Inventory Manager agentry application, on 3.0.8.something. And I believe I am using the standard approach - with a client exchange step to update the backend (Maximo Database) exchange table with the record IDs (and lastUpdate date) from the tablet. Then the Server Exchange steps run to update the exchange table to work out what records to add, remove, and update/replace on the tablet (and then the read step on the object reads the new/updated record details).
When I watch the logs, most of the time is spend on the client exchange step which is inserting the records into the exchange table one at a time. Is there other ways to maintain this table from the client that is faster? I was thinking something like a "Run One Time" client exchange step that somehow makes up XML message which has all the record IDs on the client and then does a single insert into a table on the backend database and then runs a script to process this into the exchange table?
Stephen Streeter replied
If you are using an SQL Step for the client you can try using Run one time, but change the script to include a Foreach. This way, before you run the script to the server, it will loop through the collection and create one really long SQL Script, then send one whole script to the DB instead of 1500 small scripts.