Condividi tramite


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

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

  2. Selezionare il nodo Avanzate.

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

  1. Connettersi al motore di database di.

  2. Nella barra Standard selezionare Nuova query.

  3. 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 su 20000per 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.