Condividi tramite


Ottimizzazione delle prestazioni del server tramite le opzioni di configurazione della memoria

Il componente per la gestione della memoria di Microsoft SQL Server consente di eliminare la necessità di una gestione manuale della memoria disponibile per SQL Server. All'avvio, SQL Server determina in modo dinamico la quantità di memoria da allocare, in base alla memoria utilizzata dal sistema operativo e dalle altre applicazioni attive. Se il carico del computer e di SQL Server cambia, la quantità di memoria allocata varia di conseguenza. Per ulteriori informazioni, vedere Architettura della memoria.

Le seguenti opzioni di configurazione del server consentono di configurare la memoria e influiscono sulle prestazioni del server:

  • min server memory

  • max server memory

  • max worker threads

  • index create memory

  • min memory per query

È possibile utilizzare l'opzione di configurazione del server min server memory per garantire che, quando viene raggiunta la soglia, SQL Server non rilasci memoria sotto il livello minimo di memoria server configurato. Questa opzione di configurazione può essere impostata su un valore specifico, basato sulle dimensioni e sull'attività dell'istanza di SQL Server. Se si decide di impostare questo valore, specificare un valore ragionevole in modo da garantire che il sistema operativo non richieda una quantità eccessiva di memoria da SQL Server, influendo sulle prestazioni di SQL Server.

L'opzione di configurazione del server max server memory consente di specificare la quantità massima di memoria da allocare a SQL Server all'avvio e durante l'esecuzione. Questa opzione di configurazione può essere impostata su un valore specifico se unitamente all'istanza di SQL Server vengono eseguite più applicazioni e si desidera garantire a tali applicazioni una quantità di memoria sufficiente. Se tali applicazioni, ad esempio server Web o di posta elettronica, richiedono memoria soltanto quando è necessario, non impostare l'opzione di configurazione del server max server memory. L'istanza di SQL Server rilascerà la memoria necessaria al momento opportuno. Altri tipi di applicazioni utilizzano la memoria disponibile all'avvio e non richiedono ulteriore memoria, anche quando questa risulta necessaria. Se un'applicazione di questo tipo viene eseguita contemporaneamente a un'istanza di SQL Server nello stesso computer, impostare l'opzione di configurazione del server max server memory su un valore adeguato per garantire che la memoria richiesta dall'altra applicazione non venga allocata dall'istanza di SQL Server.

Evitare di impostare le opzioni di configurazione del server min server memory e max server memory sullo stesso valore, in quanto ciò equivale ad allocare una quantità di memoria fissa a SQL Server. L'allocazione dinamica di memoria consente di ottenere le prestazioni complessive migliori nel tempo. Per ulteriori informazioni, vedere Opzioni per la memoria server.

L'opzione di configurazione del server max worker threads consente di specificare il numero di thread utilizzati per il supporto degli utenti connessi a SQL Server. Il valore predefinito di max worker threads, ovvero il valore 0, consente la configurazione automatica del numero di thread di lavoro all'avvio di SQL Server. Benché questa impostazione sia quella ottimale per la maggior parte dei sistemi, a seconda della configurazione del sistema l'impostazione di un valore specifico per max worker threads consente talvolta di ottenere prestazioni migliori. Per ulteriori informazioni, vedere Opzione max worker threads.

Nota

L'impostazione predefinita di max worker threads in SQL Server 2000 era 255. Con l'aggiornamento di un'istanza del Motore di database di SQL Server 2000 a una versione più recente viene mantenuto il valore di configurazione per max worker threads. Quando si esegue l'aggiornamento, è consigliabile impostare la nuova istanza max worker threads su 0, in modo che il Motore di database possa calcolare il numero di thread ottimale.

L'opzione di configurazione del server index create memory controlla la quantità di memoria utilizzata dalle operazioni di ordinamento durante la creazione di indici. In un sistema di produzione la creazione di indici è un'attività eseguita raramente e spesso viene pianificata per l'esecuzione come processo in periodi di attività ridotta. Pertanto, se gli indici vengono creati raramente e durante i periodi di attività ridotta, l'aumento di questo valore può migliorare le prestazioni di creazione degli indici. Nel contempo è opportuno ridurre il valore dell'opzione di configurazione min memory per query, in modo che la creazione dell'indice venga avviata anche se non è disponibile tutta la memoria necessaria. Per ulteriori informazioni, vedere Opzione index create memory.

L'opzione di configurazione del server min memory per query consente di specificare la quantità minima di memoria utilizzata per l'esecuzione di una query. Se in un sistema vengono eseguite simultaneamente più query, l'aumento del valore di min memory per query può determinare un miglioramento delle prestazioni per le query che utilizzano quantità di memoria elevate, ad esempio operazioni estese di hashing e ordinamento. Evitare tuttavia di impostare min memory per query su valori troppo alti, in particolare su sistemi a utilizzo intensivo: la query rimarrà in attesa finché non disporrà della quantità di memoria minima necessaria oppure finché non verrà superato il valore dell'opzione query wait. Se è disponibile una quantità di memoria superiore al valore minimo necessario per l'esecuzione della query, la query potrà avvalersi della memoria aggiuntiva, a condizione che questa possa essere utilizzata in modo efficace. Per ulteriori informazioni, vedere Opzione min memory per query e Opzione query wait.