Firehose cursors
- Last Updated: January 17, 2024
- 1 minute read
- OpenEdge
- Version 12.8
- Documentation
Firehose cursors are identified in Microsoft SQL Server as the default result set. A default result set is generated when the statement attributes of a cursor are left unchanged from their standard MS SQL defaults. The default result set allows rows from a query result to be pulled without locks in forward-only sequence into a client-side cache. The default result set is referred to as a firehose cursor because it can "flood" the client with results. It is unencumbered by the cursor management necessary with server-side cursors.
The following DataServer operations are eligible for the firehose cursor implementation:
- All NO-LOCK queries.
- All SHARE-LOCK queries with transaction isolation level set to read-uncommitted.
- Internal no-lock queries that populate the key cache for transaction-oriented operations.
- All stored procedure result sets.
- All send-sql-statement result sets.
- Queries written with the
QUERY-TUNING(SEPARATE-CONNECTION)keyword. When connection pooling is enabled, theQUERY-TUNING(SEPARATE-CONNECTION)is redundant.
Note: Prepared statements associated with firehose
cursors are cached on a statement cache that is associated with
the managed connection. Statement reuse may decrease based on the
recycling of managed connections. To completely disable the prepared
statement cache, use the following connection switch: "
-Dsrv
PRGRS_PREPCACHE,0". For information about monitoring the
statement cache reuse, see Monitoring cursor and connection use.