Condividi tramite


Prestazioni della migrazione: SQL Server per Istanza gestita di SQL di Azure baseline delle prestazioni

Si applica a: Istanza gestita di SQL di Azure SQL

Creare una baseline di prestazioni per confrontare le prestazioni del carico di lavoro in un Istanza gestita di SQL con il carico di lavoro originale in esecuzione in SQL Server.

Creare una baseline.

Idealmente, le prestazioni sono simili o migliori dopo la migrazione, quindi è necessario misurare e registrare i valori delle prestazioni di base nell'origine e quindi confrontarli con l'ambiente di destinazione. Una baseline di prestazioni è un set di parametri che definiscono il carico di lavoro medio nell'origine.

Selezionare un set di query importanti e rappresentative del carico di lavoro aziendale. Misurare e documentare la durata minima/media/massima e l'utilizzo della CPU per queste query, nonché le metriche delle prestazioni nel server di origine, ad esempio utilizzo medio/massimo della CPU, latenza di I/O medio/massimo del disco, velocità effettiva, operazioni di I/O al secondo, aspettativa di vita media/massima della pagina e dimensioni massime medie di tempdb.

Le risorse seguenti consentono di definire una baseline di prestazioni:

  • Monitorare l'uso della CPU
  • Monitorare l'utilizzo della memoria e determinare la quantità di memoria usata da diversi componenti, ad esempio pool di buffer, cache dei piani, pool di archivi di colonne, OLTP in memoria e così via. Inoltre, è consigliabile trovare i valori medi e di picco del contatore delle prestazioni di memoria Aspettativa di vita pagina.
  • Monitorare l'utilizzo di I/O del disco nell'istanza di SQL Server di origine usando la visualizzazione sys.dm_io_virtual_file_stats o i contatori delle prestazioni.
  • Monitorare le prestazioni del carico di lavoro e delle query esaminando le viste a gestione dinamica (o Query Store se si sta eseguendo la migrazione da SQL Server 2016 e versioni successive). Identificare la durata media e l'utilizzo della CPU delle query più importanti nel carico di lavoro.

Eventuali problemi di prestazioni nell'istanza di SQL Server di origine devono essere risolti prima della migrazione. La migrazione di problemi noti a qualsiasi nuovo sistema potrebbe causare risultati imprevisti e invalidare qualsiasi confronto delle prestazioni.

Confrontare le prestazioni

Una volta definita una baseline, confrontare prestazioni del carico di lavoro simili nel Istanza gestita di SQL di destinazione. Per garantire l'accuratezza, è necessario che l'ambiente Istanza gestita di SQL sia paragonabile al più possibile all'ambiente DI SQL Server.

Esistono Istanza gestita di SQL differenze dell'infrastruttura che rendono le prestazioni corrispondenti esattamente improbabili. Alcune query possono essere eseguite più velocemente del previsto, mentre altre possono risultare più lente. L'obiettivo di questo confronto consiste nel verificare che le prestazioni del carico di lavoro nell'istanza gestita corrispondano alle prestazioni in SQL Server (in media) e identificare le query critiche con prestazioni che non corrispondono alle prestazioni originali.

È probabile che il confronto delle prestazioni generi i risultati seguenti:

  • Le prestazioni del carico di lavoro nell'istanza gestita sono allineate o migliori rispetto alle prestazioni del carico di lavoro nell'istanza di SQL Server di origine. In questo caso, è stato confermato che la migrazione ha avuto esito positivo.

  • La maggior parte dei parametri delle prestazioni e delle query nel carico di lavoro viene eseguita come previsto, con alcune eccezioni che comportano prestazioni ridotte. In questo caso, identificare le differenze e la relativa importanza. Se sono presenti alcune query importanti con prestazioni ridotte, verificare se i piani SQL sottostanti sono stati modificati o se le query stanno raggiungendo i limiti delle risorse. È possibile attenuare questo problema applicando alcuni hint alle query critiche (ad esempio, modificare il livello di compatibilità, lo strumento di stima della cardinalità legacy) direttamente o usando le guide di piano. Verificare che le statistiche e gli indici siano aggiornati e equivalenti in entrambi gli ambienti.

  • La maggior parte delle query è più lenta in un'istanza gestita rispetto all'istanza di SQL Server di origine. In questo caso, provare a identificare le cause radice della differenza, ad esempio raggiungere un limite di risorse, ad esempio I/O, memoria o limiti di frequenza del log dell'istanza. Se non sono presenti limiti di risorse che causano la differenza, provare a modificare il livello di compatibilità del database o modificare le impostazioni del database, ad esempio la stima della cardinalità legacy ed eseguire di nuovo il test. Esaminare le raccomandazioni fornite dalle viste dell'istanza gestita o di Query Store per identificare le query con prestazioni regredite.

Istanza gestita di SQL dispone di una funzionalità predefinita di correzione automatica dei piani abilitata per impostazione predefinita. Questa caratteristica garantisce che le query che funzionavano correttamente in passato non degradino in futuro. Se questa caratteristica non è abilitata, sarà necessario eseguire il carico di lavoro con le impostazioni precedenti in modo che Istanza gestita di SQL possa apprendere la baseline delle prestazioni. Abilitare quindi la funzionalità ed eseguire di nuovo il carico di lavoro con le nuove impostazioni.

Apportare modifiche ai parametri del test o eseguire l'aggiornamento ai livelli di servizio superiori per raggiungere la configurazione ottimale per le prestazioni del carico di lavoro adatte alle proprie esigenze.

Monitorare le prestazioni

Istanza gestita di SQL fornisce strumenti avanzati per il monitoraggio e la risoluzione dei problemi ed è consigliabile usarli per monitorare le prestazioni nell'istanza. Alcune delle metriche principali da monitorare sono:

  • L'utilizzo della CPU nell'istanza di per determinare se il numero di vCore di cui è stato effettuato il provisioning è la corrispondenza corretta per il carico di lavoro.
  • permanenza presunta delle pagine nell'istanza gestita per determinare se sia necessaria memoria aggiuntiva.
  • Statistiche come INSTANCE_LOG_GOVERNOR o PAGEIOLATCH che identificano i problemi di I/O di archiviazione, soprattutto nel livello Utilizzo generico, in cui potrebbe essere necessario preallocare file per ottenere prestazioni di I/O migliori.

Considerazioni

Quando si confrontano le prestazioni, considerare i seguenti requisiti:

  • Impostazioni corrispondenza tra origine e destinazione. Verificare che varie istanze, database e impostazioni tempdb siano equivalenti tra i due ambienti. Le differenze nella configurazione, nei livelli di compatibilità, nelle impostazioni di crittografia, nei flag di traccia e così via possono influire sulle prestazioni.

  • Archiviazione è configurato in base alle procedure consigliate. Ad esempio, per utilizzo generico, potrebbe essere necessario pre-allocare le dimensioni dei file per migliorare le prestazioni.

  • Esistono differenze di ambiente chiave che potrebbero causare differenze di prestazioni tra un'istanza gestita e SQL Server. Identificare i rischi rilevanti per l'ambiente che potrebbero contribuire a un problema di prestazioni.

  • L'archivio query e l'ottimizzazione automatica devono essere abilitati nel Istanza gestita di SQL in quanto consentono di misurare le prestazioni del carico di lavoro e ridurre automaticamente i potenziali problemi di prestazioni.