Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

4 suggerimenti per l'esecuzione della diagnostica di SQL Server

I database ad alte prestazioni e ad alta disponibilità sono l'obiettivo di ogni DBA di SQL Server, ma la realtà è che le prestazioni del database non sono sempre ottimali. Tempi di risposta lenti, timeout e CPU impantanate capita al meglio di noi, il che rende la configurazione strategica della diagnostica di SQL Server un passaggio cruciale per mantenere un sistema efficiente e ben funzionante.

La diagnostica di SQL Server rivelerà problemi di prestazioni relativi all'utilizzo della memoria, alla velocità e all'efficienza delle query e all'utilizzo della CPU, il che consentirà di identificare e risolvere rapidamente i problemi con un effetto minimo sulle prestazioni. Per ridurre ulteriormente l'impatto sulle prestazioni, puoi creare una strategia di monitoraggio delle prestazioni che includa il monitoraggio dei dati diagnostici nel tempo per scoprire problemi difficili da individuare e prevedere futuri problemi di prestazioni prima che si verifichino.

Per ottenere le informazioni più preziose dalla diagnostica di SQL Server, è importante prima identificare ciò che si spera di apprendere dai dati in modo da monitorare le metriche delle prestazioni più rilevanti. Ecco quattro suggerimenti per aiutarti a iniziare.

Obiettivo diagnostico:monitorare le prestazioni del database per ambienti locali, virtuali e cloud

Indipendentemente dal fatto che i tuoi database siano ospitati in locale, nel cloud o in un ambiente ibrido, il monitoraggio delle prestazioni del database in queste cinque aree ti avviserà di alcuni dei problemi di prestazioni più comuni:

  • Disponibilità:mantenere un'elevata disponibilità è una delle principali priorità del DBA. Il monitoraggio dei dati del registro del cluster di failover e dello stato corrente del server sono fondamentali per rilevare e correggere tempestivamente i problemi.
  • Utilizzo di TempDB:tieni d'occhio la quantità di TempDB che utilizzi e come viene utilizzata. È inoltre consigliabile creare una linea di base TempDB ed estrarre i dati sulle prestazioni prima e dopo le modifiche.
  • I/O:la diagnostica di SQL Server rileva operazioni di I/O bloccate che possono causare blocchi e altri problemi di prestazioni.
  • Utilizzo della CPU:l'utilizzo elevato della CPU può essere causato da diversi fattori. Utilizzare la diagnostica di SQL Server per isolare la causa principale. Questa lista di controllo può indirizzarti nella giusta direzione.
  • Utilizzo della memoria:se non stai ottimizzando l'utilizzo della memoria, a un certo punto avrai problemi di prestazioni. Esegui la diagnostica per determinare quali processi stanno utilizzando più della loro quota di memoria e ottimizzarli o riscriverli secondo necessità.

Obiettivo diagnostico:trovare le cause di blocchi e deadlock

I blocchi e i deadlock sono i principali killer delle prestazioni, quindi diagnosticare ciò che causa i blocchi e risolvere rapidamente il problema è essenziale per mantenere prestazioni elevate. Diverse fonti comuni di blocchi e deadlock possono essere eliminate tramite queste tre pratiche:

  • Esaminare query e piani di query:query lunghe e piani di query inefficienti contribuiscono a blocchi e deadlock. La diagnostica può identificare query che possono essere suddivise in più transazioni brevi e quali piani di query non sono ottimizzati a causa di statistiche non aggiornate.
  • Analizza il carico di lavoro:un aumento del carico di lavoro può causare blocchi poiché più processi si contendono le stesse risorse. La diagnostica può individuare quale utente, database, host o istruzione di SQL Server sta causando il blocco o il deadlock in modo da poter ridistribuire il carico di lavoro secondo necessità.
  • Controlla indici:una buona indicizzazione può prevenire i blocchi eliminando la necessità di scansioni complete della tabella. Consentendo a SQL Server di cercare anziché analizzare, l'indicizzazione mantiene accessibili le risorse non bloccate.

Obiettivo diagnostico:affrontare i falsi avvisi

I falsi avvisi sono più che fastidiosi; contribuiscono a problemi di prestazioni non rilevati tramite l'esaurimento degli allarmi. L'esaurimento degli allarmi si verifica quando frequenti falsi allarmi fanno sì che un DBA ignori gli avvisi, perdendo potenzialmente una notifica che si è verificato un errore critico.

Il modo migliore per fermare i falsi allarmi è diagnosticare le fonti dei falsi allarmi ricorrenti e rimuovere gli allarmi non critici o impostare soglie che specifichino in modo restrittivo le condizioni che attivano un avviso.

Obiettivo diagnostico:ottimizzare le query SQL

L'esecuzione della normale diagnostica di SQL Server sulle query consente di ridurre o eliminare una serie di potenziali problemi di prestazioni. Sono disponibili due modi per migliorare le query basate sulla diagnostica di SQL Server:

  • Ottimizzazione delle query:se lo strumento di monitoraggio delle prestazioni di SQL Server mostra che un report sta impiegando molto tempo per essere generato, che si è verificato un picco enorme nell'attesa di I/O di recente o che alcuni processi impiegano il triplo del tempo per essere eseguiti hanno fatto un anno fa, la diagnostica potrebbe indicare che l'ottimizzazione della query è in ordine. L'ottimizzazione delle query migliora le prestazioni analizzando le query e quindi riscrivendole se necessario fino a quando non vengono eseguite al massimo livello di efficienza.
  • Aggiornamento delle statistiche:come accennato in precedenza, le statistiche non aggiornate contribuiscono a problemi di prestazioni attivando piani di query inefficienti. Pianifica aggiornamenti automatici ove possibile. Quando l'automazione non è possibile, aggiungi aggiornamenti manuali alla tua lista di controllo di manutenzione regolare per assicurarti che le statistiche rimangano aggiornate.

La diagnostica di SQL Server è uno strumento essenziale nella casella degli strumenti del DBA. Comprendere in che modo la diagnostica contribuisce a mantenere un ambiente di database SQL Server affidabile e ad alta disponibilità ti aiuterà a trovare e risolvere rapidamente i problemi di prestazioni con un effetto minimo sugli utenti.