Performance Considerations
- Last Updated: June 14, 2020
- 2 minute read
- DataDirect Connectors
- JDBC
- Oracle Service Cloud 5.1
- Documentation
You can optimize performance for your application by adjusting connection properties in the scenarios described below.
EnablePagingWithOrderByID
When enabled, this connection property provides a stable paging mechanism when retrieving large result sets by injecting the Order By clause in Select queries; however, this behavior may diminish performance. If your application does not retrieve large result sets, you should consider disabling this feature to improve performance.
FetchSize/WSFetchSize
The connection properties FetchSize and WSFetchSize can be used to adjust the trade-off between throughput and response time. In general, setting larger values for WSFetchSize and FetchSize will improve throughput, but can reduce response time.
For example, if an application attempts to fetch 100,000 rows from the remote
data source and WSFetchSize is set to 500, the driver must
make 200 Web service calls to get the 100,000 rows. If, however, WSFetchSize is set to 10000 (the maximum), the driver only needs to make 10 Web service
calls to retrieve 100,000 rows. Web service calls are expensive, so generally, minimizing Web
service calls increases throughput. In addition, many Cloud data sources impose limits on the
number of Web service calls that can be made in a given period of time. Minimizing the number
of Web service calls used to fetch data also can help prevent exceeding the data source call
limits.
For many applications, throughput is the primary performance measure, but for
interactive applications, such as Web applications, response time (how fast the first set of
data is returned) is more important than throughput. For example, suppose that you have a Web
application that displays data 50 rows to a page and that, on average, you view three or four
pages. Response time can be improved by setting FetchSize to 50 (the number
of rows displayed on a page) and WSFetchSize to 200. With these settings, the
driver fetches all of the rows from the remote data source that you would typically view in a
single Web service call and only processes the rows needed to display the first page.
InsensitiveResultSetBufferSize
To improve performance when using scroll-insensitive result sets, the driver can cache the result set data in memory instead of writing it to disk. By default, the driver caches 2 MB of insensitive result set data in memory and writes any remaining result set data to disk. Performance can be improved by increasing the amount of memory used by the driver before writing data to disk or by forcing the driver to never write insensitive result set data to disk. The maximum cache size setting is 2 GB.