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.