Condividi tramite


Configurazione del server: min memory per query

Si applica a: SQL Server

Questo articolo descrive come configurare l'opzione di configurazione del min memory per query server in SQL Server usando SQL Server Management Studio o Transact-SQL. L'opzione min memory per query specifica la quantità minima di memoria (in kilobyte) da allocare per l'esecuzione di una query. Questa operazione è nota anche come concessione di memoria minima. Ad esempio, se min memory per query è impostato su 2.048 KB, la query garantisce di ottenere almeno quella quantità di memoria totale. Il valore predefinito è 1024 KB. Il valore minimo è 512 KB mentre quello massimo è 2.147.483.647 KB (2 GB).

Limiti

La quantità indicata in min memory per query ha la precedenza sull'opzione index create memory. Se si modificano entrambe le opzioni e index create memory è minore di min memory per query, verrà visualizzato un messaggio di avviso, ma il valore risulterà impostato. Durante l'esecuzione delle query verrà visualizzato un altro avviso simile.

Consigli

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

Con Query Processor di SQL Server si tenta di determinare la quantità ottimale di memoria da allocare per una query. L'opzione min memory per query consente all'amministratore di specificare la quantità di memoria minima assegnata a ogni query. In genere la quantità di memoria aumenta se le query comportano operazioni di hashing o di ordinamento per quantità di dati elevate. L'aumento del valore di min memory per query potrebbe migliorare le prestazioni per alcune query di piccole e medie dimensioni, ma ciò potrebbe comportare un aumento della concorrenza per le risorse di memoria. L'opzione min memory per query include la memoria allocata per le operazioni di ordinamento.

Non impostare l'opzione di configurazione min memory per server di query troppo elevata, soprattutto nei sistemi molto occupati, perché la query deve attendere1 finché non può proteggere la memoria minima richiesta o fino a quando non viene superato il valore specificato nell'opzione di configurazione del server di attesa query. Se è disponibile più memoria del valore minimo specificato necessario per eseguire la query, la query può usare la memoria aggiuntiva, se la memoria può essere usata in modo efficace dalla query.

1 In questo scenario, il tipo di attesa è in RESOURCE_SEMAPHOREgenere . Per altre informazioni, vedere sys.dm_os_wait_stats.

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

  3. Nella casella Memoria minima per query immettere la quantità minima di memoria (in kilobyte) da allocare per l'esecuzione di una query.

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. In questo esempio si illustra come usare sp_configure per impostare il valore dell'opzione min memory per query su 3500 KB.

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'min memory per query', 3500;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

Completamento: Dopo aver configurato l'opzione min memory per query

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