Configurare e gestire le prestazioni

Completato

Conoscere le funzionalità di Azure SQL è importante per assicurare prestazioni coerenti. È anche importante comprendere le opzioni e le restrizioni per la configurazione in Istanza gestita di SQL di Azure e nel database SQL di Azure che possono influire sulle prestazioni. È incluso quanto segue:

  • Argomenti del tempdb database
  • Configurazione dei database
  • Configurazione di file e filegroup
  • Configurazione del massimo grado di parallelismo
  • Uso di Resource Governor
  • Gestione di indici e statistiche

Tempdb

Il tempdb database di sistema è una risorsa condivisa importante usata dalle applicazioni. Garantire la configurazione corretta di tempdb può influire sulla capacità di offrire prestazioni coerenti. Si usa tempdb nello stesso modo sia per SQL Server che per AZURE SQL. Si noti, tuttavia, che la possibilità di configurare tempdb è diversa, tra cui la posizione dei file, il numero e le dimensioni dei file e tempdb le opzioni di configurazione.

I file di database di tempdb vengono sempre archiviati automaticamente nelle unità SSD locali, quindi le prestazioni di I/O non devono essere un problema.

I professionisti di SQL Server usano spesso più file di database per partizionare le allocazioni per tempdb le tabelle. Per database SQL di Azure, il numero di file viene ridimensionato con il numero di vCore (ad esempio, due vCore è uguale a quattro file) con un massimo di 16. Il numero di file non è configurabile tramite T-SQL tempdbrispetto a , ma è possibile configurarlo modificando l'opzione di distribuzione. La dimensione massima di tempdb viene ridimensionata per numero di vCore. Si ottengono 12 file con Istanza gestita di SQL, indipendentemente dal numero di vCore.

L'opzione MIXED_PAGE_ALLOCATION di database è impostata su OFF ed AUTOGROW_ALL_FILES è impostata su ON. Non è possibile configurare questa impostazione, ma, come per SQL Server, queste sono le impostazioni predefinite consigliate.

La tempdb funzionalità di ottimizzazione dei metadati introdotta in SQL Server 2019, che può alleviare un elevato conflitto di latch, non è attualmente disponibile in database SQL di Azure o Istanza gestita di SQL di Azure.

Configurazione del database

In genere, la configurazione del database viene eseguita con le istruzioni T-SQL ALTER DATABASE e ALTER DATABASE SCOPED CONFIGURATION. Molte delle opzioni di configurazione per le prestazioni sono disponibili per Azure SQL. Per informazioni sulle differenze tra SQL Server, database SQL di Azure e Istanza gestita di SQL di Azure, vedere le informazioni di riferimento su ALTER DATABA edizione Standard edizione Standard SCOPED CONFIGURATION T-SQL.

Per le prestazioni, un'opzione che non è possibile modificare è il modello di recupero del database. Per impostazione predefinita, viene usato il modello di recupero con registrazione completa. Ciò garantisce che il database soddisfi i contratti di servizio di Azure. La registrazione minima per le operazioni in blocco non è quindi supportata. La registrazione minima per le operazioni bulk è supportata per tempdb.

File e filegroup

I professionisti di SQL Server spesso usano file e filegroup per migliorare le prestazioni di I/O tramite il posizionamento di file fisici. Azure SQL non consente agli utenti di collocare i file in sistemi di dischi specifici. Azure SQL prevede tuttavia impegni di risorse per le prestazioni di I/O per quanto riguarda velocità, operazioni di I/O al secondo e latenze. In questo modo, l'astrazione dell'utente dal posizionamento fisico dei file può essere un vantaggio.

Il database SQL di Azure include un solo file di database (il livello Hyperscale in genere ne prevede diversi) e la dimensione massima viene configurata tramite le interfacce di Azure. Non sono disponibili funzionalità per creare file aggiuntivi.

Istanza gestita di SQL di Azure supporta l'aggiunta di file di database e la configurazione delle dimensioni, ma non il posizionamento fisico dei file. È possibile usare il numero di file e dimensioni dei file per Istanza gestita di SQL per migliorare le prestazioni di I/O. I filegroup definiti dall'utente sono inoltre supportati per Istanza gestita di SQL per scopi di gestibilità.

Configurazione di MAXDOP

Il massimo grado di parallelismo (MAXDOP, Max Degree Of Parallelism) può influire sulle prestazioni delle singole query. SQL Server e Azure SQL gestiscono MAXDOP nello stesso modo. È possibile configurare MAXDOP in Azure SQL in modo simile a quanto avviene in SQL Server, usando le tecniche seguenti:

  • L'istruzione ALTER DATABASE SCOPED CONFIGURATION per configurare MAXDOP è supportata per Azure SQL.
  • La stored procedure sp_configure per "max degree of parallelism" è supportata per Istanza gestita di SQL.
  • Gli hint per la query MAXDOP sono completamente supportati.
  • La configurazione di MAXDOP con Resource Governor è supportata per Istanza gestita di SQL.

Resource Governor

Resource Governor è una funzionalità di SQL Server che è possibile usare per controllare l'uso delle risorse per i carichi di lavoro tramite I/O, CPU e memoria. Si noti che per i pool e i gruppi di carico di lavoro definiti dall'utente, la funzionalità Resource Governor è supportata per Istanza gestita di SQL ma non per il database SQL di Azure.

Manutenzione degli indici

La creazione e la manutenzione degli indici per Azure SQL sono esattamente le stesse di SQL Server. La creazione, la ricompilazione e la riorganizzazione degli indici sono ad esempio completamente supportate, come con SQL Server. Sono inclusi gli indici online e ripristinabili.

Manutenzione delle statistiche

SQL Server e Azure SQL gestiscono le statistiche nello stesso modo. Le opzioni per le statistiche automatiche per i database sono disponibili in entrambe le soluzioni.

Dopo aver appreso alcune delle opzioni di configurazione e manutenzione per le prestazioni per Azure SQL, completare la verifica delle conoscenze seguente prima di procedere all'unità successiva.

Verifica delle conoscenze

1.

Con quale metodo è possibile configurare il numero di file per tempdb per il database SQL di Azure?

2.

Con quale metodo è possibile configurare le prestazioni di I/O per il database SQL di Azure?

3.

Come si gestiscono gli indici con Azure SQL?