Accelerare e ottimizzare le prestazioni

Completato

Comprendere le opzioni per accelerare e ottimizzare le prestazioni per Azure SQL è fondamentale per offrire prestazioni coerenti. Ciò implica comprendere come ridimensionare la capacità della CPU, migliorare le prestazioni di I/O, configurare la memoria e i ruoli di lavoro, migliorare la latenza delle applicazioni e applicare procedure consigliate standard per l'ottimizzazione di SQL Server.

Ridimensionare la capacità della CPU

Può essere necessario ridimensionare il numero di CPU per le esigenze delle risorse. Per un ambiente locale, è necessario riconfigurare una macchina virtuale, modificare l'hardware e persino migrare il database. Azure SQL consente di eseguire questa operazione senza alcuna migrazione da parte dell'utente. Per aumentare o ridurre il numero di vCore per la distribuzione, è possibile usare il portale, T-SQL, l'interfaccia della riga di comando di Azure o le API REST.

Il tempo di inattività è in genere necessario, ma può essere molto rapido per il database SQL di Azure senza migrazione. Le distribuzioni di livello Hyperscale consentono di aumentare le prestazioni in un tempo costante indipendentemente dalle dimensioni dei dati e le distribuzioni serverless consentono il ridimensionamento automatico in base alla richiesta di CPU.

Nota

Istanza gestita di SQL di Azure ridimensionamento può richiedere tempo significativo, ma non richiede alcuna migrazione.

Prestazioni di I/O

Le prestazioni di I/O possono essere fondamentali per un'applicazione di database. Azure SQL astrae l'utente dal posizionamento fisico dei file, ma sono disponibili metodi per assicurarsi di ottenere le prestazioni di I/O necessarie.

Le operazioni di I/O al secondo (IOPS) possono essere importanti per l'applicazione. Assicurarsi di aver scelto il livello di servizio e i vCore corretti per le esigenze di I/O al secondo. È necessario comprendere come misurare le IOPS per le query locali, se si esegue la migrazione ad Azure. Se sono presenti restrizioni relative alle operazioni di I/O al secondo, è possibile riscontrare attese di I/O lunghe. Nel modello di acquisto vCore è possibile aumentare le prestazioni dei vCore o passare a Business Critical o Hyperscale se non si dispone di operazioni di I/O al secondo sufficienti. Per i carichi di lavoro di produzione, quando si usa DTU, è consigliabile passare al livello Premium.

La latenza di I/O è un altro componente chiave per le prestazioni di I/O. Per una latenza di I/O più veloce per il database SQL di Azure, prendere in considerazione business critical o iperscalabilità. Per una latenza di I/O più veloce per Istanza gestita di SQL, passare al livello business critical o aumentare le dimensioni dei file o il numero di file per il database. Il miglioramento della latenza del log delle transazioni potrebbe richiedere l'uso di transazioni con più stati.

Aumentare la memoria o i ruoli di lavoro

Una quantità sufficiente di memoria o di ruoli di lavoro può essere importante per l'applicazione e la distribuzione. Per il database SQL di Azure, aumentare il numero di vCore per limiti di memoria o ruoli di lavoro maggiori. Per Istanza gestita di SQL, aumentare i vCore per limiti di memoria maggiori. Attualmente, Istanza gestita di SQL supporta anche l'aumento dei ruoli di lavoro con "Numero massimo thread di lavoro".

Migliorare la latenza dell'applicazione

Anche se si configura la distribuzione per tutte le esigenze delle risorse, le applicazioni possono introdurre problemi di prestazioni legati alla latenza. Assicurarsi di seguire queste procedure consigliate con le applicazioni SQL di Azure:

  • Usare un tipo di connessione di reindirizzamento invece di un proxy.
  • Ottimizzare le applicazioni "loquaci" usando le stored procedure o limitando il numero di round trip di query attraverso tecniche come i batch.
  • Ottimizzare le transazioni raggruppandole invece che usare transazioni singleton.

Ottimizzare come nel caso di SQL Server

Azure SQL è comunque SQL Server. Non esiste quasi mai un sostituto per garantire l'ottimizzazione delle query di SQL Server ed esaminare quanto segue:

  • Progettazione degli indici corretta
  • Utilizzo di batch
  • Utilizzo di stored procedure
  • Parametrizzazione delle query per evitare troppi query ad hoc memorizzate nella cache
  • Elaborazione dei risultati nell'applicazione in modo rapido e corretto

Nell'esercizio successivo si esaminerà il problema di prestazioni del primo esercizio e lo si migliorerà ridimensionando le CPU per Azure SQL.