There are typically three configurations to look at when a Simple Data Request is performing poorly.
The useGetList Parameter
The first configuration is whether the request specifies the use of useGetList. The useGetList parameter specifies that all matching records should be returned with a single database query. When the parameter is not present, a database query is made for the Ids of matching records, and then separate database queries are made to retrieve the entire record associated to the Id.
The simplest way to check whether the Simple Data Request is using the useGetList parameter is to open the associated Service Item in a browser with developer tools (such as Chrome, or Firefox with Firebug installed, or Internet Explorer with Developer Tools installed) and trigger the Simple Data Request. Using the developer tools, check the request parameters to ensure that useGetList is set to "true".
If the useGetList parameter is missing, or not set to true, open the Event that is triggering the Simple Data Request. If the Event is a Populate Menu or Set Fields External event, ensure that the "Use Get Entry" checkbox option is not selected. If the Event is a Custom event that is calling KD.utils.Action.makeAsyncRequest, ensure that the 6th parameter is set to true.
This call does not useGetList:
KD.utils.Action.makeAsyncRequest('retrieveList', clientAction.actionId, callbackFunction, 'status=Active', 'simpleFormat');
This call does useGetList:
KD.utils.Action.makeAsyncRequest('retrieveList', clientAction.actionId, callbackFunction, 'status=Active', 'simpleFormat', true);
Limitations: When the useGetList parameter is set, complex data fields (such as attachments and diary fields) can not be included in the fields available. Additionally, older versions of Remedy may not be able to return unlimited length fields.
The second configuration to evaluate is the Simple Data Request qualification. If the Form used by the Simple Data Request has a large number of records and the Qualification does not include appropriate indexed fields in the qualification, Remedy will be forced to do a full table scan to determine which records to return.
To validate that the qualification is using an indexed field, open the Form reference by the Simple Data Request record in the Remedy Admin Tool or in Developer Studio and compare what indexes are on the form to what fields are in the Simple Data Request qualification.
Amount of Data Retrieved
The last configuration to evaluate is the amount of data that is returned by the Simple Data Request. The quantity of data can be measured by the number of retrieved Entries and the number of fields available for a given Simple Data Request. Fundamentally, the more data that is retrieved, the longer the request will take. Often the best improvement on performance can be to reduce the number of entries that are retrieved. For example, if only "Active" records are necessary data, ensure that the qualification is limiting results such that "Inactive" records are not also being returned.