Esporta (0) Stampa
Espandi tutto

Procedure consigliate per le prestazioni per SQL Server nelle macchine virtuali di Azure

Aggiornamento: giugno 2014

Quando si esegue SQL Server in Macchine virtuali di Azure, è consigliabile continuare a usare le stesse opzioni di ottimizzazione delle prestazioni del database applicabili a SQL Server nell'ambiente server locale. Le prestazioni di un database relazionale in un cloud pubblico dipendono tuttavia da molti fattori, quali le dimensioni di una macchina virtuale e la configurazione dei dischi dati.

Questo argomento illustra le procedure consigliate per ottimizzare le prestazioni di SQL Server nelle macchine virtuali (VM) di Azure.

Nota importante: per informazioni complete, vedere il white paper Linee guida sulle prestazioni per SQL Server nelle macchine virtuali di Azure.

Di seguito viene fornito un rapido elenco di controllo che è possibile seguire:

  • Per le macchine virtuali SQL Server usare almeno il livello Standard A2.

  • Mantenere l'account di archiviazione e la macchina virtuale SQL Server nella stessa area.

  • Disabilitare la replica geografica di Azure per l'account di archiviazione.

  • Evitare di usare dischi del sistema operativo o temporanei per l'archiviazione o la registrazione dei log di database.

  • Evitare di usare le opzioni di memorizzazione nella cache dei dischi dati di Azure (criterio di memorizzazione nella cache = None).

  • Eseguire lo striping di più dischi dati di Azure per ottenere un aumento della velocità effettiva di input/output.

  • Formattare con dimensioni di allocazione documentate.

  • Separare i percorsi I/O dei file di dati e di log per ottenere operazioni di input/output al secondo dedicate per dati e log.

  • Abilitare la compressione delle pagine di database.

  • Abilitare l'inizializzazione file istantanea per i file di dati.

  • Limitare o disabilitare l'aumento automatico delle dimensioni per il database.

  • Disabilitare la compattazione automatica per il database.

  • Spostare tutti i database, compresi i database di sistema, in dischi dati.

  • Spostare le directory di file di traccia e log degli errori di SQL Server in dischi dati.

  • Applicare correzioni per il miglioramento delle prestazioni di SQL Server.

  • Configurare percorsi predefiniti.

  • Abilitare le pagine bloccate.

  • Eseguire i backup direttamente nell'archiviazione BLOB.

Per altre informazioni, seguire le linee guida fornite nelle sottosezioni seguenti.

Per applicazioni sensibili al livello di prestazioni, è consigliabile l'uso delle seguenti dimensioni per le macchine virtuali:

  • SQL Server Enterprise Edition: livello Standard A3 o superiore

  • SQL Server Standard Edition: livello Standard A2 o superiore

Per informazioni aggiornate sulle dimensioni di macchine virtuali supportate, vedere Dimensioni delle macchine virtuali e dei servizi cloud per Azure.

È inoltre consigliabile creare il proprio account di archiviazione di Azure nello stesso data center in cui risiedono le macchine virtuali SQL Server per ridurre ritardi nel trasferimento. Quando si crea un account di archiviazione, disabilitare la replica geografica perché l'ordine di scrittura coerente su più dischi non è garantito. Considerare invece la possibilità di configurare una tecnologia di ripristino di emergenza di SQL Server tra due data center di Azure. Per altre informazioni, vedere Disponibilità elevata e ripristino di emergenza di SQL Server in Macchine virtuali di Azure.

Quando si crea una macchina virtuale di Azure, la piattaforma le assocerà almeno un disco come disco del sistema operativo. Si tratta di un disco rigido virtuale (VHD) archiviato come BLOB di pagine nell'archiviazione. È inoltre possibile collegare i dischi aggiuntivi alla macchina virtuale come dischi dati che verranno archiviati nell'archiviazione come BLOB di pagine. In Macchine virtuali di Azure è presente un altro disco, denominato disco temporaneo. Si tratta di un disco nel nodo che può essere usato per l'area scratch.

Un disco del sistema operativo è un disco rigido virtuale (VHD) che è possibile avviare e montare come versione in esecuzione di un sistema operativo, etichettato come unità C.

Il criterio di memorizzazione nella cache predefinito per il disco del sistema operativo è Read/Write. Per applicazioni sensibili al livello di prestazioni, è consigliabile usare il disco dati invece del disco del sistema operativo. Collegare uno o più dischi dati alla macchina virtuale senza modificare il criterio di memorizzazione nella cache predefinito, che è None per i dischi dati.

L'unità di archiviazione temporanea, etichettata come unità D: non è persistente nell'archiviazione BLOB di Azure. Non archiviare file di dati o di log nell'unità D: .

Quando si usano le macchine virtuali della serie D, archiviare solo e/o le estensioni del pool di buffer nell'unità D. Diversamente da quanto accade per altre serie di macchine virtuali, l'unità D delle macchine virtuali della serie D è basata su SSD. Questo consente di migliorare le prestazioni dei carichi di lavoro che usano in modo intensivo oggetti temporanei o che contengono working set con dimensioni eccessive rispetto alla memoria. Per altre informazioni, vedere il post di blog relativo all'utilizzo di unità SSD nelle macchine virtuali di Azure per archiviare TempDB e le estensioni del pool di buffer di SQL Server.

  • Numero di dischi dati: per applicazioni sensibili alla velocità effettiva, è consigliabile collegare il numero massimo di dischi consentito dalle dimensioni della macchina virtuale. Notare che la latenza non migliora con l'aggiunta di altri dischi dati se il carico di lavoro resta entro i limiti massimi di operazioni di input/output al secondo.

    Per informazioni sul numero massimo di operazioni di input/output al secondo per disco, vedere Dimensioni delle macchine virtuali e dei servizi cloud per Azure.

  • Criterio di memorizzazione nella cache: nel disco dati la memorizzazione nella cache di lettura e scrittura è disabilitata per impostazione predefinita. Usare questa impostazione predefinita e non abilitare alcuna opzione di memorizzazione nella cache per il disco dati. Per altre informazioni sulla memorizzazione nella cache su disco, vedere la pagina relativa alla gestione di dischi e immagini.

    Per istruzioni sulla configurazione della memorizzazione nella cache su disco, vedere i seguenti argomenti: Set-AzureOSDisk, Set-AzureDataDisk e la pagina relativa alla gestione di macchine virtuali con i cmdlet di Azure PowerShell.

  • Dimensioni delle unità di allocazione NTFS: quando si formatta il disco dati, è consigliabile usare una dimensione di unità di allocazione di 64 KB per file di dati e di log, nonché per tempdb.

  • Striping del disco: è consigliabile seguire queste linee guida:

    • Per Windows 8/Windows Server 2012 o versioni successive, usare Spazi di archiviazione. Impostare la dimensione di striping su 64 KB per carichi di lavoro OLTP e su 256 KB per carichi di lavoro di data warehouse per evitare effetti sulle prestazioni causati dal disallineamento delle partizioni. Impostare inoltre column count = number of physical disks. Per altre informazioni su come configurare Spazi di archiviazione, vedere l'argomento relativo ai cmdlet di Spazi di archiviazione in Windows PowerShell.

    • Per Windows 2008 R2 o versioni precedenti, è possibile usare dischi dinamici (volumi con striping del sistema operativo) e la dimensione di striping è sempre 64 KB. Notare che tale opzione è deprecata a partire da Windows 8/Windows Server 2012. Per informazioni, vedere i criteri di supporto inclusi nell'argomento relativo alla transizione del Servizio dischi virtuali all'API di gestione archiviazione di Windows.

  • Posizionamento dei file di dati e di log: se il carico di lavoro non fa uso intensivo dei log e non necessita di operazioni di input/output al secondo dedicate, è possibile configurare un unico pool di archiviazione. In caso contrario, per le macchine virtuali che consentono il collegamento di più di 4 dischi, posizionare i file di dati e di log in pool di archiviazione o dischi separati. Per il livello Standard A2, è consigliabile una configurazione di tre dischi dati per i file di dati e per tempdb e di un disco dati per i file di log. È possibile regolare il numero di dischi dedicati al pool di archiviazione per dati o per log in base alle esigenze del carico di lavoro.

  • Considerare la possibilità di usare la compressione di pagina del database in quanto può migliorare le prestazioni dei carichi di lavoro con molte operazioni di I/O. La compressione dei dati potrebbe tuttavia aumentare l'uso della CPU nel server di database.

  • È consigliabile comprimere qualsiasi file di dati durante il trasferimento da e verso Azure.

  • Provare ad abilitare l'inizializzazione immediata dei file per ridurre il tempo necessario per l'allocazione di file iniziale. Per sfruttare al meglio l'inizializzazione immediata dei file, concedere all'account di servizio SQL Server (MSSQLSERVER) SE_MANAGE_VOLUME_NAME e aggiungerlo ai criteri di sicurezza Esecuzione operazioni di manutenzione volume. Se si usa un'immagine della piattaforma SQL Server per Azure, l'account di servizio predefinito (NT Service\MSSQLSERVER) non viene aggiunto ai criteri di sicurezza Esecuzione operazioni di manutenzione volume. In altre parole, l'inizializzazione immediata dei file non viene abilitata in un'immagine della piattaforma SQL Server per Azure. Dopo avere aggiunto l'account di servizio SQL Server ai criteri di sicurezza Esecuzione operazioni di manutenzione volume, riavviare il servizio SQL Server. Per altre informazioni, vedere Inizializzazione di file di database.

  • autogrow è considerato una semplice contingenza per la crescita imprevista. La gestione quotidiana della crescita dei dati e dei log mediante l'opzione di aumento automatico è sconsigliata. Se viene usata tale opzione, aumentare la dimensione del file in anticipo mediante l'opzione Size.

  • Assicurarsi che l'opzione autoshrink sia disabilitata per evitare inutili sovraccarichi che potrebbero influire negativamente sulle prestazioni.

  • Se si usa SQL Server 2012, installare l'aggiornamento cumulativo 10 per il Service Pack 1. Questo aggiornamento contiene la correzione per le scarse prestazioni di I/O quando si esegue l'istruzione select into temporary table in SQL Server 2012. Per informazioni, vedere questo articolo della Knowledge Base.

  • Spostare i database di sistema (come msdb e tempdb), i backup e le directory predefinite di dati e log di SQL Server in dischi dati non memorizzati nella cache, al fine di migliorare le prestazioni. Eseguire quindi le seguenti azioni:

    • Regolare i percorsi file di XEvent e Trace.

    • Regolare il percorso del log degli errori SQL.

    • Regolare il percorso di backup predefinito.

    • Regolare il percorso di database predefinito.

  • Stabilire pagine bloccate per ridurre le attività di I/O e di paging.

Alcune distribuzioni possono ottenere vantaggi aggiuntivi in termini di prestazioni con l'impiego di tecniche di configurazione più avanzate. Di seguito vengono evidenziate alcune funzionalità di SQL Server che possono essere utili per ottenere prestazioni migliori:

Vedere anche

Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft