Configurazione del server: blocchi
Si applica a: SQL Server
Questo articolo descrive come configurare l'opzione di configurazione del locks
server in SQL Server usando SQL Server Management Studio o Transact-SQL. L'opzione locks
imposta il numero massimo di blocchi disponibili, che limita la quantità di memoria usata da SQL Server motore di database. 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.
Importante
Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.
Consigli
Questa opzione è avanzata e la relativa modifica è riservata ad amministratori di database esperti o a professionisti con certificazione per SQL Server.
Quando il server viene avviato con locks
impostato su 0
, gestione blocchi acquisisce memoria sufficiente dal motore di database per un pool iniziale di 2.500 strutture di blocco. Man mano che il pool di blocchi viene esaurito, viene acquisita più memoria per il pool.
In genere, se è necessaria più memoria per il pool di blocchi di quanto sia disponibile nel pool di memoria motore di database e sia disponibile una quantità maggiore di memoria del computer (la max server memory
soglia non è stata raggiunta), l'motore di database alloca la memoria in modo dinamico per soddisfare la richiesta di blocchi. Tuttavia, se l'allocazione di tale memoria provocherebbe il paging a livello di sistema operativo (ad esempio, se un'altra applicazione è in esecuzione nello stesso computer di un'istanza di SQL Server e usando tale memoria), non viene allocato più spazio di blocco. Il pool di blocchi dinamici non acquisisce più del 60% della memoria allocata al motore di database. Dopo che il pool di blocchi raggiunge il 60% della memoria acquisita da un'istanza del motore di database o non è disponibile più memoria nel computer, ulteriori richieste di blocchi generano un errore.
La configurazione consigliata prevede che SQL Server usi i blocchi dinamicamente. Tuttavia, è possibile impostare locks
ed eseguire l'override della possibilità di SQL Server di allocare le risorse di blocco in modo dinamico. Quando locks
è impostato su un valore diverso da 0
, il motore di database non può allocare più blocchi rispetto al valore specificato in locks
. Aumentare questo valore se SQL Server visualizza un messaggio che indica 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 anche quando si verifica l'escalation dei blocchi. Quando locks
è impostato su 0
, l'escalation dei blocchi si verifica quando la memoria usata dalle strutture di blocco correnti raggiunge il 40% del pool di memoria motore di database. Quando locks
non è impostato su 0
, l'escalation dei blocchi si verifica quando il numero di blocchi raggiunge il 40% del valore specificato per locks
.
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 la modifica di un'opzione di configurazione o per l'esecuzione dell'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 serversysadmin e serveradmin.
Usare SQL Server Management Studio
In Esplora oggetti fare clic con il pulsante destro del mouse su un server e scegliere Proprietà.
Selezionare il nodo Avanzate.
In Parallelismo digitare il valore desiderato per l'opzione
locks
.Usare l'opzione
locks
per impostare il numero massimo di blocchi disponibili, che limita la quantità di memoria usata da SQL Server.
Usare Transact-SQL
Connettersi al motore di database di.
Nella barra Standard selezionare Nuova query.
Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui. Questo esempio mostra come usare sp_configure per impostare il valore dell'opzione
locks
su20000
per poter stabilire il numero di blocchi disponibili a tutti gli utenti.USE master; GO EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXECUTE sp_configure 'locks', 20000; GO RECONFIGURE; GO EXECUTE sp_configure 'show advanced options', 0; GO RECONFIGURE; GO
Per altre informazioni, vedere Opzioni di configurazione del server.
Completamento: Dopo aver configurato l'opzione locks
Per poter rendere effettiva l'impostazione, è necessario riavviare il server.