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

4 attività chiave di monitoraggio del database che ogni DBA dovrebbe conoscere

I DBA svolgono un ruolo vitale all'interno di un'organizzazione. In qualità di custodi dei dati, sono responsabili della gestione di tutti gli aspetti delle prestazioni del database, tra cui l'elevata disponibilità, il tempo di elaborazione delle query rapido e l'attenuazione del rischio e il ripristino di emergenza. Inoltre, i DBA sono responsabili dell'obiettivo aziendale di mantenere i database dell'organizzazione con un occhio al ROI e al risparmio sui costi.

Con tutti i diversi cappelli che indossano, i DBA devono lavorare in modo efficiente e un'efficace gestione del tempo è il loro migliore amico. Il modo migliore per raggiungere l'efficienza è concentrarsi innanzitutto sulle attività chiave che aiuteranno a mantenere le prestazioni ottimali dei database.

Ecco quattro attività di monitoraggio del database che dovrebbero essere in cima alla lista dei "must-know" di ogni DBA.

Come (e perché) modificare le impostazioni predefinite in SQL Server

Molti DBA eseguono SQL Server così com'è, subito pronto all'uso. Tuttavia, le configurazioni predefinite non sono sempre la scelta migliore dal punto di vista della sicurezza o delle prestazioni. I database di ogni organizzazione sono diversi e soddisfano esigenze aziendali diverse, quindi è logico che non tutti i database siano configurati allo stesso modo.

A seconda delle esigenze e preferenze specifiche del database, esistono diverse impostazioni predefinite di SQL Server che potresti voler modificare:

  • Fattore di riempimento:se crei un indice senza specificare il valore del fattore di riempimento, il valore predefinito è 0. Ciò significa che la pagina si riempirà fino alla capacità e qualsiasi inserimento, eliminazione o aggiornamento potrebbe causare divisioni e frammentazione eccessive della pagina.

    Non esiste un valore del fattore di riempimento universalmente "corretto", ma 80-90 è normalmente una scelta sicura. Questo intervallo di valori consente di riempire l'80-90 percento della pagina, lasciando il 10-20 percento libero.
  • Soglia di costo per il parallelismo:la soglia di costo per il parallelismo è il valore al quale il motore di SQL ServerSQL Server avvia l'esecuzione di piani paralleli per le query. Il valore predefinito è cinque secondi, ma questo valore è piuttosto basso e potrebbe creare molte query inutilmente complesse, che influiranno negativamente sulle prestazioni.

    Inizia con un'impostazione di 20 secondi e regola secondo necessità in base alle attese di CXPACKET e all'utilizzo della CPU.
  • Autocrew del file di database:l'aumento automatico è un processo che si verifica quando il motore di SQL ServerSQL Server aumenta le dimensioni di un file di database quando lo spazio è esaurito. La quantità di crescita del file è impostata per impostazione predefinita su 1 MB per i file di dati e il 10% per i file di registro delle transazioni.

    Ogni database crescerà a velocità diverse, quindi stima di quanto pensi che il database crescerà e imposta il valore di conseguenza.
  • Modello di ripristino del database:il modello di ripristino predefinito è COMPLETO pronto all'uso, ma non è efficiente per tutti i database.

    Modifica l'impostazione in SEMPLICE per i database che non sono mission-critical e lascia l'impostazione su COMPLETO solo per i database di produzione ad alto rischio.
  • Massima memoria del server:il valore predefinito è 2 TB, il che significa che SQL Server alloca tutta la memoria dal sistema operativo. Questo non lascia memoria per l'utilizzo del sistema operativo.

    Regolare l'impostazione per massimizzare la quantità di memoria disponibile per il processo di SQL Server, ma lasciare un po' per il sistema operativo da utilizzare se necessario.
  • Massimo grado di parallelismo (MAXDOP):MAXDOP controlla quanti processori vengono utilizzati per l'esecuzione di una query in un piano parallelo. Il valore predefinito è 0, il che significa che SQL Server può determinare quanti processori può utilizzare. Se lasci il costo della soglia per il parallelismo al valore predefinito di 5, potresti finire per utilizzare tutte le CPU per ogni query.

    L'impostazione MAXDOP ideale varia in base al tuo sistema specifico, ma Microsoft offre alcuni suggerimenti qui.
  • Compressione di backup:l'impostazione predefinita per questa funzione è OFF. Tuttavia, la compressione del backup velocizza le operazioni di backup del database e crea file di backup di dimensioni inferiori, quindi potresti volerlo attivare.

Un ultimo consiglio per regolare le impostazioni di SQL Server dai valori predefiniti:testare sempre accuratamente il sistema dopo aver modificato le impostazioni per assicurarsi che non siano stati introdotti problemi inavvertitamente.

Come eliminare i colli di bottiglia di SQL Server

I colli di bottiglia di SQL Server sono una fonte comune di problemi di prestazioni, tra cui SQL Server che monopolizza il processore, lunghi tempi di esecuzione delle query, I/O eccessivo e attività estreme sui dischi.

Esistono molti motivi che non causano colli di bottiglia nel database potrebbero verificarsi questi problemi di prestazioni, ma se il problema deriva da colli di bottiglia di SQL Server, sono tre le aree principali che potrebbero essere interessate:memoria, I/O e CPU.

I colli di bottiglia della memoria derivano da risorse di memoria insufficienti o da attività di SQL Server che utilizzano troppa memoria disponibile. Presta attenzione a tempi di esecuzione delle query più lunghi, I/O eccessivo, messaggi di memoria insufficiente nel registro dell'applicazione e frequenti arresti anomali del sistema.

I colli di bottiglia di I/O si verificano quando lo spazio di archiviazione disponibile non è sufficiente per supportare le normali operazioni di database come tempDB. Presta attenzione ai lunghi tempi di risposta, ai rallentamenti delle applicazioni e ai frequenti timeout delle attività.

I colli di bottiglia della CPU sono causati da risorse hardware insufficienti. Cerca nel monitoraggio del database i dati di registro che mostrano che SQL Server sta utilizzando una CPU eccessiva.

Come prevenire la crescita di tempDB

TempDB è un'area di lavoro temporanea nelle istanze di SQL Server utilizzata per creare e conservare oggetti intermedi e temporanei. TempDB è una delle risorse più attive in un ambiente SQL Server, quindi è importante monitorare e controllare la crescita eccessiva di tempDB.

TempDB viene utilizzato frequentemente all'interno di un'istanza perché viene utilizzato per archiviare oggetti utente, oggetti interni e archivi di versioni. Un'eccessiva crescita di tempDB può causare problemi di prestazioni, quindi è importante tenere traccia di query di grandi dimensioni, tabelle temporanee e variabili di tabella che utilizzano una grande quantità di spazio su disco tempDB.

Per ottimizzare le dimensioni e la crescita del database temp, Microsoft consiglia le procedure consigliate seguenti:

  • Imposta il modello di ripristino di tempDB su SEMPLICE
  • Consenti ai file tempDB di crescere automaticamente come richiesto
  • Imposta l'incremento di crescita del file su una dimensione ragionevole per evitare che i file del database tempDB crescano di un valore troppo piccolo
  • Preallocare lo spazio per tutti i file tempDB impostando la dimensione del file su un valore sufficientemente grande da ospitare il carico di lavoro tipico nell'ambiente
  • Rendi ogni file di dati della stessa dimensione

È possibile regolare le dimensioni e i parametri di crescita dei file di dati tempDB utilizzando SQL Server Management Studio.

Come calcolare il costo totale di proprietà

Anche se potresti non dedicare molto tempo a pensare al budget della tua azienda, è meglio che tu creda che lo faccia il CFO. Quando è il momento di richiedere una nuova tecnologia di monitoraggio delle prestazioni, è intelligente essere preparati con dati concreti per eseguire il backup della richiesta.

Uno dei dati più influenti che puoi presentare è il potenziale costo totale di proprietà (TCO) della nuova tecnologia rispetto alla tua soluzione attuale. Oltre ai costi diretti, assicurati di considerare i costi indiretti come le infrastrutture ei costi delle risorse come la manutenzione.

La riduzione del TCO è un obiettivo comune per i DBA che stanno cercando di sostituire il loro attuale strumento di monitoraggio delle prestazioni del database, quindi ci sono diversi fattori da considerare. Come accennato in precedenza, è importante considerare non solo i costi diretti come il prezzo di acquisto, ma anche i costi indiretti come lo stoccaggio e i costi delle risorse come la formazione.

Per determinare il TCO per il nuovo strumento, inserisci le tue specifiche in un calcolatore del TCO e vedi quali sono i risparmi sui costi, se presenti.