Try OpenEdge Now
skip to main content
DataServer for Microsoft SQL Server
Initial Programming Considerations : Cursors : Block cursors : Considering when to use block cursors and firehose block cursors
 
Considering when to use block cursors and firehose block cursors
A firehose block cursor is the default cursor processing mechanism to process the NO-LOCK queries for the DataServer for the MS SQL Server. A NO-LOCK query is one that executes with the NO-LOCK lock condition attached to its ABL statement. Firehose block cursors provide optimum performance for NO-LOCK queries and generally, surpass the performance benefits of the server-side block cursors because firehose block cursor does bulk processing at the client-side. For more information on firehose, firehose block, and Fast Forward-only cursors, see Firehose, Firehose block, and Fast Forward-Only Cursors.
While both the firehose block and the block cursors are the default cursor options for NO-LOCK queries at the client-side and at the server-side respectively, you can use the -Dsrv connect options available from your DataServer session to turn off either or both of these options. In addition, firehose cursors can be turned off for individual queries (at the statement-level) using the QUERY-TUNING options. For information on the query tuning options, see Query tuning.
When firehose cursors are turned off, a server-side cursor, managed by SQL Server, is used to process queries. When block cursors are turned off, a look-ahead cache is used instead to batch records retreived from the server for the NO-LOCK queries, and if the look-ahead cache is also turned off through a connection switch or a QUERY-TUNING option, then the records are fetched one at a time from the server as requested by the client.