Considering when to use block cursors and firehose block cursors
- Last Updated: February 11, 2026
- 1 minute read
- OpenEdge
- Version 13.0
- Documentation
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.