skip to main content
Configuring and connecting to data sources : Performance considerations
  

Try DataDirect Drivers Now

Performance considerations

Application Using Threads (ApplicationUsingThreads): The driver coordinates concurrent database operations (operations from different threads) by acquiring locks. Although locking prevents errors in the driver, it also decreases performance. If your application does not make ODBC calls from different threads, the driver has no reason to coordinate operations. In this case, the ApplicationUsingThreads attribute should be disabled (set to 0).
Note: If you are using a multi-threaded application, you must enable the Application Using Threads option.
Fetch Size/Web Service Fetch Size (FetchSize/WSFetchSize): The connection options Fetch Size and Web Service Fetch Size can be used to adjust the trade-off between throughput and response time. In general, setting larger values for Web Service Fetch Size and Fetch Size 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 Web Service Fetch Size is set to 500, the driver must make 200 Web service calls to get the 100,000 rows. If, however, Web Service Fetch Size is set to 2000 (the maximum), the driver only needs to make 50 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 Fetch Size to 50 (the number of rows displayed on a page) and WSFetch Size 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.
Service List (ServiceList): If your application does not require connecting to all the services to which you have access, you can improve performance using the Service List option. By default, the driver attempts to discover and connect to all the services to which it has access. However, you can limit the number of services the driver attempts to connect to by specifying only the required services with this option. This eliminates the discovery process and reduces the overhead associated with connecting to services you do not use, thereby improving performance.
Service Version (ServiceVersion): Service Version determines which versions of the driver returns metadata for when there are multiple versions. If you only require metadata for the latest version of a service, set this option to 0 (Latest), the default. This improves performance at connection by eliminating the overhead associated with fetching metadata for multiple versions.
Web Service Compress Data (WSCompressData): Web Service Compress Data allows you to compress data sent to and from the Web server. By enabling this connection option, you can significantly improve performance by reducing the size of data transferred between the driver and the Web server.