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

Come velocizzare il tuo SQL Server utilizzando il monitoraggio delle prestazioni del database

Mantenere un SQL Server ad alte prestazioni è essenziale non solo per le operazioni della tua organizzazione ma anche per i tuoi clienti. Quando i tuoi server sono lenti a rispondere, o non rispondono affatto, perdi affari. Di seguito sono elencate tre aree chiave da monitorare da vicino per garantire che le prestazioni di SQL Server siano ottimali e i modi per migliorare le prestazioni se le metriche mostrano che hai un problema.

Indici

Se i tuoi indici funzionano bene, contribuiscono a un sistema veloce e senza intoppi. Tuttavia, se i tuoi indici soffrono di uno di questi problemi comuni, potresti scoprire che le prestazioni di SQL Server sono influenzate negativamente.

Metrica da monitorare:fattore di riempimento

Il fattore di riempimento è un'impostazione in SQL Server che indica agli indici di riempire ogni pagina X percento. Sembra intuitivo che tu voglia riempire ogni pagina al 100 percento, ma in realtà, il riempimento eccessivo delle pagine può causare la divisione delle pagine. Se un amministratore aggiunge una riga aggiuntiva a una pagina intera, la nuova riga inserisce circa la metà delle righe esistenti in una nuova pagina e la nuova riga viene aggiunta in fondo alla prima pagina.

Le divisioni di pagina possono causare problemi di prestazioni a causa del numero maggiore di operazioni di I/O e della potenziale frammentazione. Tuttavia, troppo spazio su una pagina può anche compromettere le prestazioni perché le risorse vengono spese inutilmente.

Per ottenere i migliori risultati in termini di prestazioni dalle impostazioni del fattore di riempimento, non impostare un valore a livello di sistema. Guarda i tuoi indici individualmente e imposta il fattore di riempimento a un livello appropriato per ciascuno. Ad esempio, gli indici spesso frammentati necessitano di un valore del fattore di riempimento diverso rispetto agli indici che non vengono quasi mai utilizzati.

Metrica da monitorare:frammentazione

La frammentazione dell'indice si verifica quando gli utenti aggiungono ed eliminano record. Spostare le cose è una parte normale delle operazioni quotidiane di un database, ma nel tempo la frammentazione influisce sulle prestazioni. La frammentazione può causare un paio di problemi:

  • Troppo spazio vuoto su troppe pagine rallenta le scansioni e utilizza la memoria inutilmente
  • Le nuove pagine vengono aggiunte fuori servizio, quindi il server impiega più tempo a trovare i dati

Quando la frammentazione inizia a influire sulle prestazioni, sarà necessario eseguire Ricostruisci o Riorganizza per ripulire gli indici frammentati. L'esecuzione di Rebuild creerà un nuovo indice e rimuoverà lo spazio vuoto aggiuntivo. Riorganizza mette in ordine le pagine foglia in modo che il server possa trovare i dati più facilmente.

Buffer Cache

Quando SQL Server è in grado di leggere le pagine nella cache del buffer, il tempo di risposta sarà più veloce. Le prestazioni ne risentono quando il server deve andare su disco per trovare una pagina perché deve eseguire una serie di passaggi prima di salvare la pagina nel buffer e quindi leggerla. Ci sono un paio di metriche che puoi monitorare che ti aiuteranno a mantenere la cache del buffer in esecuzione al massimo delle prestazioni.

Metrica da monitorare:aspettativa di vita della pagina

L'aspettativa di vita della pagina (PLE) indica quanto tempo una pagina rimane nella cache del buffer senza essere chiamata prima di essere rispedita al disco. L'aumento del PLE migliorerà le prestazioni, ma utilizza anche la memoria che potrebbe essere necessaria per altre funzioni. Se intendi regolare PLE, devi capire quanta memoria puoi utilizzare senza influire sulle prestazioni da qualche altra parte.

Metrica da monitorare:percentuale di hit della cache del buffer

Il tasso di hit della cache del buffer è la percentuale di pagine che si trovano nel pool di buffer rispetto a tutte le richieste di pagina. Il rapporto di hit della cache del buffer deve essere superiore a 90 per prestazioni ottimali (ad esempio, SQL Server non deve leggere dal disco). Prestare attenzione quando si analizzano i dati del rapporto hit ratio della cache del buffer. Una piccola diminuzione del rapporto potrebbe non indicare un vero problema. Analizza i dati insieme a PLE per determinare se esiste un problema di prestazioni effettivo.

Ottimizzazione delle query

Le query lente e con prestazioni insufficienti sono uno dei problemi di prestazioni di SQL Server più comuni. Ci sono molte possibili ragioni per cui le tue query non funzionano bene, quindi potrebbe essere difficile individuare una causa esatta. Ma ci sono alcune cose che puoi provare all'inizio della tua indagine che possono migliorare le prestazioni delle query con il minimo sforzo.

Metrica da monitorare:scansione dell'indice

Il controllo dello stato di salute del tuo SQL Server dovrebbe essere una parte regolare delle tue mansioni DBA. Quando le query vengono eseguite lentamente, dedica un po' di tempo in più con Query Optimizer. Una cosa importante da verificare è se la scansione dell'indice di SQL Server presenta problemi da risolvere.

Un altro potenziale killer delle prestazioni è la scansione dell'indice eseguita più frequentemente del necessario. La scansione dell'indice richiede molto più tempo della ricerca dell'indice perché la query deve eseguire la scansione di ogni riga alla ricerca di dati utili. Configura Query Optimizer in modo che cerchi gli indici più spesso di quanto li esegua la scansione.

La riscrittura di una query problematica è un altro modo per aumentare le prestazioni. A volte la semplificazione delle query rimuoverà la parte che sta causando l'intasamento della query. Puoi anche provare ad aggiungere indici per velocizzare le query, ma questo funziona meglio in alcuni casi rispetto ad altri.

L'aggiunta di indici è una buona soluzione per i campi coinvolti nella ricerca, nel raggruppamento o nell'ordinamento; campi ad accesso frequente; e campi con valori univoci. In genere non è efficace aggiungere indici su campi con valori duplicati come sì/no o per tabelle piccole.

Il monitoraggio delle prestazioni di SQL Server è fondamentale per mantenere i database a prestazioni elevate. Mantenere il tuo SQL Server in esecuzione alla massima velocità può essere ottenuto solo attraverso un'attenzione diligente alle metriche delle prestazioni. Aggiungi le metriche discusse in precedenza all'elenco di controllo di manutenzione per identificare e correggere tempestivamente i problemi di prestazioni di SQL Server.