Share via


Opzione cursor threshold

L'opzione cursor threshold consente di specificare il numero delle righe del set di cursori in corrispondenza del quale i keyset vengono generati in modo asincrono. Quando i cursori producono un keyset per un set di risultati, Query Optimizer produce una stima del numero di righe che verranno restituite per tale set di risultati. Se il numero di righe restituite stimato supera il valore di soglia, il cursore viene generato in modo asincrono ed è pertanto possibile il recupero di righe dal cursore durante il popolamento del cursore stesso. In caso contrario, il cursore viene generato in modo sincrono e la query attende la restituzione di tutte le righe.

Se si imposta cursor threshold su -1, tutti i keyset vengono generati in modo sincrono, a vantaggio dei set di cursori di dimensioni ridotte. Se si imposta cursor threshold su 0, tutti i keyset dei cursori vengono generati in modo asincrono. Se si impostano altri valori, Query Optimizer verifica il numero di righe previste nel set di cursori. Se tale numero supera il valore impostato per cursor threshold, il keyset viene creato in modo asincrono. Non impostare cursor threshold su un valore troppo basso, in quanto è opportuno che i set di risultati di dimensioni ridotte vengano creati in modo sincrono.

Nota

SQL Server non supporta la generazione asincrona di cursori Transact-SQL gestiti da keyset o statici. Le operazioni sui cursori di Transact-SQL, ad esempio OPEN o FETCH, sono generalmente di tipo batch, pertanto la generazione asincrona di cursori Transact-SQL non è necessaria. I cursori API del server gestiti da keyset o statici in cui il parametro OPEN a bassa latenza rappresenta un problema per via dei round trip del client per ogni operazione sul cursore sono ancora supportati in SQL Server.

L'accuratezza con cui Query Optimizer è in grado di stimare il numero di righe in un keyset dipende dal livello di aggiornamento delle statistiche relative a tutte le tabelle del cursore.

cursor threshold è un'opzione avanzata. Se per modificarne l'impostazione si utilizza la stored procedure di sistema sp_configure, sarà possibile modificare cursor threshold soltanto quando show advanced options è impostata su 1. L'impostazione diventa effettiva immediatamente e non richiede il riavvio del server.