Configurare l'opzione di configurazione del server locks

In questo argomento si illustra come configurare l'opzione di configurazione del server locks in SQL Server 2012 utilizzando SQL Server Management Studio o Transact-SQL. Con l'opzione locks è possibile impostare il numero massimo di blocchi disponibili e pertanto limitare la quantità di memoria utilizzata per i blocchi stessi dal Motore di database di SQL Server. L'impostazione predefinita è 0, che consente al Motore di database di allocare e deallocare le strutture di blocco in modo dinamico, in base alle variazioni dei requisiti di sistema.

Nota importanteImportante

Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Non utilizzare questa funzionalità in un nuovo progetto di sviluppo e modificare non appena possibile le applicazioni in cui è attualmente implementata.

Contenuto dell'argomento

  • Prima di iniziare:

    Consigli

    Sicurezza

  • Per configurare l'opzione locks utilizzando:

    SQL Server Management Studio

    Transact-SQL

  • Completamento: Dopo la configurazione dell'opzione locks

Prima di iniziare

Consigli

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

  • Quando si avvia il server con l'opzione locks impostata su 0, viene acquisita dal Motore di database una quantità di memoria sufficiente per un pool iniziale di 2.500 strutture di blocco tramite Gestione blocchi. Quando il pool di blocchi è esaurito, viene acquisita memoria aggiuntiva per il pool.

    In genere, se per il pool di blocchi è necessaria una quantità di memoria superiore a quella disponibile nel pool di memoria del Motore di database ed è disponibile ulteriore memoria del computer, ovvero non è stata raggiunta la soglia max server memory, tale memoria viene allocata dinamicamente dal Motore di database per soddisfare la richiesta di blocchi. Se tuttavia questa modalità di allocazione di memoria determina il paging a livello del sistema operativo, ad esempio se un'altra applicazione eseguita sul computer in cui si trova l'istanza di SQL Server sta utilizzando la memoria disponibile, lo spazio aggiuntivo per i blocchi non viene allocato. Il pool di blocchi dinamico può acquisire fino al 40% della memoria disponibile per il Motore di database. Se il pool di blocchi raggiunge il 60% della memoria acquisita da un'istanza del Motore di database oppure se nel computer non è disponibile ulteriore memoria, eventuali richieste aggiuntive di blocchi generano un errore.

    La configurazione consigliata prevede che SQL Server utilizzi i blocchi dinamicamente. È tuttavia possibile impostare l'opzione locks e impedire l'allocazione dinamica di risorse di blocco da parte di SQL Server. Se l'opzione locks è impostata su un valore diverso da 0, il Motore di database è in grado di allocare solo il numero di blocchi corrispondente al valore specificato in locks. Aumentare tale valore se in SQL Server viene visualizzato un messaggio indicante che è stato superato il numero di blocchi disponibili. Poiché ogni blocco richiede memoria (96 byte), l'aumento del valore può richiedere anche l'aumento della quantità di memoria destinata al server.

  • L'opzione locks influisce inoltre sul momento in cui si verifica l'escalation dei blocchi. Se l'opzione locks è impostata su 0, l'escalation dei blocchi si verifica quando la memoria utilizzata dalle strutture di blocco correnti raggiunge il 40% del pool di memoria del Motore di database. Se l'opzione locks è impostata su un valore diverso da 0, l'escalation dei blocchi si verifica quando il numero dei blocchi raggiunge il 40% del valore specificato per l'opzione locks.

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[Inizio pagina]

Utilizzo di SQL Server Management Studio

Per configurare l'opzione locks

  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. Nell'area Parallelismo digitare il valore desiderato per l'opzione locks.

    L'opzione locks consente di impostare il numero massimo di blocchi disponibili e pertanto limitare la quantità di memoria utilizzata per i blocchi stessi da SQL Server.

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

Utilizzo di Transact-SQL

Per configurare l'opzione locks

  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 si illustra come utilizzare sp_configure per impostare il valore dell'opzione locks su 20000 in modo da stabilire il numero di blocchi disponibili a tutti gli utenti.

Use AdventureWorks2012 ;
GO
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'locks', 20000;
GO
RECONFIGURE;
GO

Per ulteriori informazioni, vedere Opzioni di configurazione del server.

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

Completamento: Dopo la configurazione dell'opzione locks

Per poter rendere effettiva l'impostazione, è necessario riavviare il server.

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

Vedere anche

Riferimento

RECONFIGURE (Transact-SQL)

sp_configure (Transact-SQL)

Concetti

Opzioni di configurazione del server