Share via


Configurare l'opzione di configurazione del server cursor threshold

In questo argomento si illustra come configurare l'opzione di configurazione del server cursor threshold in SQL Server 2012 utilizzando SQL Server Management Studio o Transact-SQL. Con l'opzione cursor threshold è possibile specificare il numero delle righe del set di cursori in corrispondenza del quale i keyset del cursore vengono generati in modo asincrono. Quando i cursori generano 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 stimato di righe restituite supera la soglia, il cursore viene generato in modo asincrono ed è pertanto possibile recuperare le righe dal cursore durante il popolamento del cursore stesso. In caso contrario, il cursore viene generato in modo sincrono e per l'esecuzione della query è necessario attendere la restituzione di tutte le righe.

Contenuto dell'argomento

  • Prima di iniziare:

    Limitazioni e restrizioni

    Consigli

    Sicurezza

  • Per configurare l'opzione cursor threshold tramite:

    SQL Server Management Studio

    Transact-SQL

  • Completamento: Dopo la configurazione dell'opzione cursor threshold

Prima di iniziare

Limitazioni e restrizioni

  • SQL Server non supporta la generazione asincrona di cursori Transact-SQL gestiti da keyset o statici. Le operazioni sui cursori Transact-SQL, ad esempio OPEN o FETCH, vengono eseguite in batch. Non è quindi necessario generare i cursori Transact-SQL in modo asincrono. I cursori API del server statici o gestiti da keyset asincroni continuano ad essere supportati in SQL Server nei casi in cui l'istruzione OPEN a bassa latenza costituisce un problema, a causa dei round trip del client per ciascuna operazione del cursore.

  • 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.

Consigli

  • Questa opzione è avanzata e la relativa modifica è riservata ad amministratori di database esperti o a tecnici dotati di certificazione per SQL Server.

  • 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 compilato in modo asincrono. Non impostare cursor threshold su un valore troppo basso, in quanto è opportuno che i set di risultati di dimensioni ridotte vengano compilati in modo sincrono.

Sicurezza

Autorizzazioni

Le autorizzazioni di esecuzione per sp_configure senza alcun parametro o solo con il primo parametro vengono assegnate per impostazione predefinita a tutti gli utenti. Per eseguire sp_configure con entrambi i parametri per modificare un'opzione di configurazione o per eseguire l'istruzione RECONFIGURE, a un utente deve essere concessa l'autorizzazione a livello di server ALTER SETTINGS. L'autorizzazione ALTER SETTINGS è assegnata implicitamente ai ruoli predefiniti del server sysadmin e serveradmin.

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Utilizzo di SQL Server Management Studio

Per configurare l'opzione cursor threshold

  1. In Esplora oggetti fare clic con il pulsante destro del mouse su un server e scegliere Proprietà.

  2. Fare clic sul nodo Avanzate.

  3. In Varie specificare il valore desiderato per l'opzione Cursor Threshold.

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Utilizzo di Transact-SQL

Per configurare l'opzione cursor threshold

  1. Connettersi al Motore di database.

  2. Dalla barra Standard fare clic su Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui. In questo esempio viene mostrato come utilizzare sp_configure per impostare l'opzione cursor threshold su 0 in modo che i keyset del cursore vengano generati in modo asincrono.

USE AdventureWorks2012 ;
GO
EXEC sp_configure 'show advanced options', 1 ;
GO
RECONFIGURE
GO
EXEC sp_configure 'cursor threshold', 0 ;
GO
RECONFIGURE
GO

Per ulteriori informazioni, vedere Opzioni di configurazione del server.

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Completamento: Dopo la configurazione dell'opzione cursor threshold

L'impostazione diventa effettiva immediatamente senza dover riavviare il server.

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Vedere anche

Riferimento

@@CURSOR_ROWS (Transact-SQL)

RECONFIGURE (Transact-SQL)

sp_configure (Transact-SQL)

UPDATE STATISTICS (Transact-SQL)

Concetti

Opzioni di configurazione del server