Configurare e gestire le prestazioni
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 database
tempdb
- 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 database di sistema tempdb
è un'importante risorsa condivisa usata dalle applicazioni. Accertarsi della configurazione corretta di tempdb
può influire sulla capacità di offrire prestazioni coerenti. Le modalità d'uso di tempdb
sono le stesse, sia per SQL Server che per Azure SQL. Si noti, tuttavia, che le possibilità di configurazione di tempdb
sono diverse, ad esempio il posizionamento dei file, il numero e le dimensioni dei file e le opzioni di configurazione di tempdb
.
I file di database di tempdb
vengono sempre archiviati automaticamente nelle unità SSD locali, quindi le prestazioni di I/O non dovrebbero rappresentare un problema.
I professionisti di SQL Server spesso usano più di un file di database per partizionare le allocazioni per le tabelle tempdb
. Per il database SQL di Azure, il numero di file viene ridimensionato con il numero di vCore (ad esempio, due vCore equivalgono a quattro file) con un massimo di 16. Il numero di file non può essere configurato tramite T-SQL in tempdb
, ma è possibile farlo modificando l'opzione di distribuzione. Le dimensioni massime di tempdb
vengono ridimensionate per numero di vCore. Si ottengono 12 file con Istanza gestita di SQL, indipendentemente dal numero di vCore.
L'opzione di database MIXED_PAGE_ALLOCATION
è impostata su OFFe AUTOGROW_ALL_FILES
è impostata su ON. Questi parametri non possono essere configurati, ma, come per SQL Server, sono le impostazioni predefinite consigliate.
Attualmente, la funzionalità di ottimizzazione dei metadati di tempdb
in SQL Server 2019, che può alleviare una contesa di latch elevata, non è disponibile nel database SQL di Azure o nell'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. Vedere le informazioni di riferimento di T-SQL su ALTER DATABASE e ALTER DATABASE SCOPED CONFIGURATION per le differenze tra SQL Server, il database SQL di Azure e l'Istanza gestita di SQL di Azure.
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 in blocco è 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.
L'Istanza gestita di SQL di Azure supporta l'aggiunta di file di database e la configurazione di dimensioni, ma non il posizionamento fisico dei file. È possibile usate il numero di file e le 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 corrispondono a quelle per 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.
Ora che sono state apprese alcune delle opzioni di configurazione e manutenzione per le prestazioni di Azure SQL, completare la verifica delle conoscenze seguente prima di procedere con l'unità successiva.