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

Le prime 10 domande frequenti sul monitoraggio delle prestazioni di SQL Server

Il monitoraggio delle prestazioni di SQL Server è considerato da molti amministratori di database la loro responsabilità più importante. Dato che i server con prestazioni scadenti possono avere un impatto negativo non solo sulle operazioni interne ma anche sulle applicazioni rivolte ai clienti, tenere traccia delle prestazioni SQL e mitigare rapidamente i problemi sono fondamentali per il successo e la redditività dell'azienda.

Man mano che sempre più organizzazioni si rivolgono a SQL Server, i DBA cercano sempre più risorse che li aiutino a implementare una solida strategia di monitoraggio delle prestazioni. È disponibile un'abbondante documentazione per aiutare i DBA ad avviare il monitoraggio delle prestazioni di SQL Server, ma ci sono alcune domande universali a cui quasi tutti i DBA desiderano una risposta rapida. Di seguito sono riportate le risposte a 10 delle domande più frequenti sul monitoraggio delle prestazioni di SQL Server.

Che cos'è il monitoraggio delle prestazioni di SQL Server?

Lo scopo principale del monitoraggio delle prestazioni di SQL Server è garantire prestazioni coerenti e disponibilità elevata delle istanze di SQL Server. Il monitoraggio delle prestazioni è un processo suddiviso in due parti, ed entrambe sono essenziali per mantenere il sistema attivo e funzionante in modo ottimale:

  • Monitoraggio: Tieni traccia di un'ampia gamma di parametri delle prestazioni rispetto a soglie preimpostate per identificare comportamenti anomali e fornire un meccanismo per informare il DBA con allarmi specifici per il problema e fornire un contesto sufficiente per avviare il processo diagnostico.

  • Diagnostica: Il flusso di lavoro e gli strumenti necessari per stabilire l'origine di un problema di prestazioni e i dati necessari per risolvere il problema immediato.

  • Analisi della causa principale: Le intuizioni per guardare oltre i sintomi e identificare i problemi sottostanti che hanno innescato il problema e potrebbero causarne il ripetersi.

  • Analisi delle tendenze: Guarda le prestazioni per lunghi periodi di tempo. Utilizza l'analisi delle tendenze per identificare i problemi prima che si verifichino, quindi distingui tra problemi occasionali e ricorrenti o per esaminare i limiti del carico di lavoro nel tempo. Quest'ultimo può essere utilizzato per prevedere le esigenze future dell'infrastruttura, informare gli sforzi di consolidamento o la giusta dimensione per la migrazione cloud pianificata.

Quali sono gli strumenti di monitoraggio delle prestazioni del database migliori?

Il numero di database di cui è responsabile un DBA rende impraticabile il monitoraggio e la diagnostica manuali, se non addirittura impossibile. Fortunatamente, le ultime soluzioni software di monitoraggio delle prestazioni sono dotate di un sacco di funzionalità per rendere gestibile il monitoraggio delle prestazioni, anche su larga scala:

  • Efficace gestione degli allarmi: Dare priorità agli allarmi significa che puoi affrontare prima i grandi problemi e ignorare i falsi allarmi.

  • Diagnostica completa: I migliori strumenti di monitoraggio delle prestazioni ti consentono di approfondire la diagnostica. Sapere che c'è un problema non è utile quanto sapere come risolverlo.

  • Rapid time to value: Ogni istanza raccoglie centinaia di metriche e l'archiviazione in loco diventerà rapidamente costosa. Prendi in considerazione una delle soluzioni di monitoraggio delle prestazioni SaaS per risparmi sui costi e scalabilità.

  • Analisi: L'analisi affidabile è un elemento chiave di differenziazione tra gli strumenti di monitoraggio delle prestazioni. Per il massimo impatto sulle prestazioni, seleziona uno strumento che fornisca metriche complete per carico di lavoro, piano di query, causa principale dell'allarme e blocco.

  • Tracciamento dei dati storici: Cerca uno strumento di monitoraggio delle prestazioni che salvi i dati storici. Ciò accelererà la risoluzione dei problemi perché saprai se un problema si ripresenta e in che modo i problemi vengono monitorati nel tempo.

  • Ottimizzazione del piano di ottimizzazione e query: Uno strumento con intelligenza artificiale integrata ti consentirà di perfezionare le query e ottimizzarle per un'istanza specifica.

  • Controlli sanitari: I controlli di integrità monitorano i segni vitali di SQL Server per farti sapere che potresti avere un problema, a volte prima ancora che il problema si verifichi.

Se desideri uno strumento con tutte le funzionalità discusse in precedenza, dovrai cercare una delle soluzioni di monitoraggio delle prestazioni di SQL Server basate sul cloud. Ineguagliabili in termini di scalabilità, flessibilità e prezzo, questi strumenti di monitoraggio forniscono una piattaforma di monitoraggio delle prestazioni sicura per soddisfare ogni esigenza.

Qual ​​è il modo migliore per ottimizzare il monitoraggio delle prestazioni del database?

Uno dei modi migliori per ottimizzare il monitoraggio delle prestazioni è l'automazione. L'automazione delle attività comuni, come il monitoraggio dello spazio su disco, l'ispezione dei registri degli errori e la verifica dei backup del database, garantirà il completamento di queste attività, offrendo al DBA più tempo per svolgere attività di valore superiore.

Inoltre, puoi implementare quanto segue per ottimizzare il monitoraggio delle prestazioni di SQL Server:

  • Monitoraggio mobile: Il monitoraggio mobile è disponibile dai tuoi dispositivi Android e iOS. Fornendo mappe di calore, allarmi intelligenti ed elenchi di allarmi, il monitoraggio delle prestazioni mobili ti consente di diagnosticare i problemi e iniziare il triage da qualsiasi luogo.

  • Ottimizzazione e ottimizzazione delle query: L'ottimizzazione delle prestazioni consente di visualizzare, analizzare e ottimizzare le query SQL e i piani di esecuzione evidenziando gli operatori con i costi più elevati, offrendo soluzioni suggerite per i problemi e riscrivendo/ottimizzando le query e il piano delle query.

  • Controlli sanitari: I controlli di integrità consentono di ottimizzare il monitoraggio delle prestazioni individuando i problemi di integrità all'interno di ogni istanza di SQL Server, comprese le lunghe attese e la latenza di I/O. I controlli dello stato forniscono anche dati storici, in modo da poter tenere traccia dei problemi di prestazioni nel tempo.

Come devo scegliere uno strumento di monitoraggio di SQL Server?

Ci sono due considerazioni principali quando si decide su uno strumento di monitoraggio delle prestazioni di SQL Server.

Che tipo di strumento stai cercando?

Esistono tre tipi principali di strumenti di monitoraggio delle prestazioni da considerare:

  • Personalizzato/realizzato internamente: In questo caso, tieni presente che solo perché puoi fare qualcosa non sempre significa che dovresti. Sì, puoi mettere insieme uno strumento di monitoraggio delle prestazioni interno per raccogliere le metriche usando PerfMon, tracce, DMV e XEvents. Ma i contro superano di gran lunga i vantaggi di intraprendere questa strada. Non è scalabile, quindi man mano che le tue istanze aumentano, le tue capacità di monitoraggio delle prestazioni ne risentono. Inoltre, non è possibile monitorare tutte le cose che devi guardare per garantire prestazioni ottimali di SQL Server. Una volta che inizi a raccogliere i dati, devi salvarli da qualche parte affinché siano utili e questo può diventare costoso. In conclusione:è più prezioso per te dedicare il tuo tempo prezioso a creare e mantenere uno strumento di monitoraggio delle prestazioni o dedicarlo alla correzione e all'ottimizzazione dei carichi di lavoro mission-critical.

  • Gratuito/open source: Questa è potenzialmente una scelta migliore rispetto alla creazione della propria soluzione di monitoraggio delle prestazioni, ma ci sono ancora dei limiti. Sebbene tu ottenga un po' di personalizzazione, ti manca ancora l'ampiezza della copertura e gli avvisi preconfigurati. Dovrai comunque fornire il tuo spazio di archiviazione dati. È un processo complesso creare uno strumento in grado di acquisire in modo efficace grandi quantità di dati sulle prestazioni senza influire sul server monitorato, impostare le soglie appropriate per centinaia di parametri, gestire grandi volumi di dati raccolti e mantenerli aggiornati da una versione di Server SQL al successivo. Concentra il tuo tempo sulla risoluzione dei problemi e non sulla creazione di sistemi di monitoraggio delle prestazioni. Se dipendi dagli aggiornamenti della community, il supporto per le nuove versioni di una piattaforma di database potrebbe ritardarne il rilascio.

  • Commerciale: Gli strumenti di monitoraggio delle prestazioni SQL commerciali offrono una gamma di funzionalità e livelli di personalizzazione e molti sono sorprendentemente convenienti. Gli strumenti commerciali facilitano il monitoraggio delle prestazioni con opzioni come controlli dello stato, gestione degli allarmi, diagnostica delle prestazioni e funzionalità di monitoraggio mobile, funzionalità che non otterrai da strumenti gratuiti o costruiti internamente.

Quali sono le tue esigenze per il tuo ambiente specifico?

Prima di selezionare uno strumento di monitoraggio delle prestazioni, poniti queste domande per aiutarti a individuare lo strumento che soddisfa le tue esigenze specifiche:

  • Quante istanze vuoi monitorare?

  • Sono collocati o dispersi?

  • Sono on-premise o nel cloud (o entrambi)?

  • Puoi permetterti un pagamento forfettario per infrastrutture e licenze o devi ripartire i costi?

  • Sono disponibili istanze di infrastruttura e database da dedicare a uno strumento di monitoraggio?

  • Hai tempo o risorse internamente per costruire e mantenere l'infrastruttura di monitoraggio?

  • Lo strumento ha la capacità di analizzare il carico di lavoro su più dimensioni istantaneamente, per farti risparmiare ore di scripting?

  • Esiste una capacità intelligente per analizzare i dati e aiutarti a identificare problemi specifici?

  • Lo strumento fornisce diagnostica immediata, best practice o diagnosi per l'approfondimento pertinente?

Qual ​​è il modo migliore per monitorare lo stato delle prestazioni del database?

Esistono diversi segni che il tuo SQL Server non è integro, inclusi:

  • Rallentamento generale del carico di lavoro

  • Timeout di connessione/interrogazione

  • Utilizzo eccessivo della CPU

  • Pressione della memoria

  • Eccessiva latenza di lettura/scrittura di I/O

  • Registro delle transazioni o dimensione di TempDB eccessiva

Se noti uno di questi sintomi, è il momento di impostare i controlli di integrità per riportare il tuo sistema alle massime prestazioni. Alcuni passaggi iniziali che puoi eseguire per identificare la causa dei problemi di prestazioni includono:

  • Stabilire una linea di base delle prestazioni e misurarla in base a essa

  • Verifica dei backup

  • Controllo degli indici mancanti

  • Determinare quale percentuale del carico di lavoro proviene da query ad hoc

Quali sono le migliori metriche per il monitoraggio delle prestazioni di SQL Server?

Esistono centinaia di metriche che puoi misurare per monitorare e migliorare le prestazioni, ma ci sono alcuni elementi di spicco che dovrebbero far parte di ogni piano di manutenzione di SQL Server. Ecco alcune delle aree principali da monitorare e le metriche da tenere d'occhio:

  • Indici. Gli indici sono una fonte frequente di problemi di prestazioni perché i database sono in uno stato di costante cambiamento. I dati vengono aggiunti e rimossi e gli indici vengono modificati ed eliminati, il tutto contribuendo a scarse prestazioni. Queste sono le metriche da tenere d'occhio:

    • Fattore di riempimento
    • I/O
    • Frammentazione
  • Cache del buffer. È importante configurare la cache del buffer per ottimizzare il tempo in cui le pagine rimangono lì senza esagerare e monopolizzare la memoria necessaria altrove. Queste sono le metriche da tenere d'occhio:

    • Speranza di vita della pagina
    • Percentuale di hit della cache del buffer
  • T-SQL. Invece di eseguire istruzioni SQL ad hoc, SQL Server le esegue in batch, le compila in un piano di esecuzione e le memorizza nella cache, ricompilandole secondo necessità. Compilazioni e ricompilazioni eccessive possono degradare le prestazioni. Queste sono le metriche da tenere d'occhio:

    • Compilazioni SQL
    • Ricompilazioni SQL
  • Altre metriche da tenere d'occhio:

    • Blocca le attese e i processi bloccati
    • Utilizzo della CPU

Quali sono i problemi comuni nel monitoraggio delle prestazioni del database?

Colli di bottiglia delle prestazioni

I colli di bottiglia delle prestazioni si manifestano come database lenti o che non rispondono. I colli di bottiglia possono essere difficili da individuare perché possono essere correlati alla memoria, all'archiviazione o al processore. Tuttavia, ci sono alcuni punti in cui dovresti cercare prima i problemi:

  • WRITELOG tempo di attesa
  • UNISCI NESTED LOOP
  • Contesa su TempDB

Aspettativa di vita della pagina bassa (PLE)

Un PLE basso riduce le prestazioni perché SQL Server deve andare su disco più frequentemente per trovare i file di dati, il che richiede molto più tempo della loro lettura dalla cache del buffer.

Frammentazione

Controlla i tuoi indici per una frammentazione eccessiva. Le prestazioni di SQL Server ne risentono quando è necessario eseguire ricerche in pagine sparse e parzialmente riempite per trovare i dati.

Come devo impostare il mio sistema di monitoraggio delle prestazioni del database?

Dopo aver deciso una soluzione di monitoraggio delle prestazioni di SQL Server, è il momento di metterla in funzione. Anche se potresti voler tuffarti subito in tutte le nuove brillanti funzionalità, fare un passo indietro e affrontare il processo in modo metodico ti aiuterà a ottenere il massimo dal tuo sistema. Ecco alcuni suggerimenti per l'onboarding del tuo nuovo strumento di gestione delle prestazioni:

  • Decidi quali istanze richiedono maggiormente la tua attenzione

  • Esegui i prerequisiti

  • Conosci i tuoi requisiti di sistema

  • Scarica il programma di installazione

  • Aggiungi connessioni

Quali query posso utilizzare per il monitoraggio delle prestazioni del server SQL?

Le query che utilizzi per il monitoraggio delle prestazioni variano in base alle metriche che stai monitorando. Tuttavia, il rilevamento dei problemi di memoria, la valutazione della deframmentazione dell'indice e l'identificazione di tempi di attesa inaccettabili sono probabilmente in cima all'elenco di controllo del monitoraggio delle prestazioni di ogni DBA. La documentazione di Microsoft SQL Server fornisce dettagli per una serie di query per aiutarti a implementare il tuo piano di monitoraggio delle prestazioni:

  • Utilizzo della memoria

  • Deframmentazione dell'indice

  • Attendi statistiche

Quali sono le migliori pratiche per il monitoraggio delle prestazioni del database?

Alcune persone non sono d'accordo con il termine "procedure consigliate", ma quando si tratta di monitoraggio delle prestazioni di SQL Server, non c'è dubbio che ci siano alcune cose che un DBA deve fare per mantenere il sistema sano e gli utenti felici.

Rendi prioritaria la manutenzione dell'indice

Trascurare i tuoi indici è un modo infallibile per generare problemi di prestazioni. Gli indici sono la fonte di comuni killer di prestazioni, tra cui la frammentazione e le divisioni di pagina.

Conosci il tuo carico di lavoro

È difficile sapere quando hai un problema se non sai che aspetto ha "normale". Prenditi del tempo per conoscere il tuo carico di lavoro ponendo domande come:

  • Quando questa istanza è più impegnata?

  • Quali applicazioni utilizzano questa istanza?

  • Quando è stato l'ultimo backup?

  • Questa istanza presenta problemi di prestazioni noti?

Scegli uno strumento di monitoraggio delle prestazioni che soddisfi le tue esigenze specifiche

Prima di impegnarti in uno strumento di monitoraggio delle prestazioni di SQL Server, devi prima definire le tue esigenze. Una volta compreso ciò che stai cercando di ottenere con il tuo strumento di monitoraggio delle prestazioni, puoi cercare con sicurezza una soluzione con le funzionalità che soddisfano le tue esigenze.

Trova e correggi i colli di bottiglia delle prestazioni

I sintomi evidenti dei colli di bottiglia delle prestazioni includono l'utilizzo di troppa memoria, lunghi tempi di attesa, frammentazione degli indici e troppi o troppo pochi indici. Trovare e correggere rapidamente questi colli di bottiglia è una delle principali responsabilità di un DBA. Il modo migliore per mantenere le prestazioni del database al massimo livello è implementare uno strumento di monitoraggio delle prestazioni che ti aiuti a individuare e correggere facilmente i colli di bottiglia delle prestazioni e altre fonti di degrado delle prestazioni.