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

Come aumentare le prestazioni di un Database?

Ottimizza il design logico

Il livello logico riguarda la struttura della query e le tabelle stesse. Cerca prima di massimizzare questo. L'obiettivo è accedere al minor numero di dati possibile a livello logico.

  • Disponi delle query SQL più efficienti
  • Progettare uno schema logico che supporti le esigenze dell'applicazione (es. tipo di colonne, ecc.)
  • Compromesso di progettazione per supportare alcuni casi d'uso meglio di altri
  • Limiti relazionali
  • Normalizzazione

Ottimizza il design fisico

Il livello fisico si occupa di considerazioni non logiche, come il tipo di indici, i parametri delle tabelle, ecc. L'obiettivo è ottimizzare l'IO che è sempre il collo di bottiglia. Accorda ogni tavolo per adattarlo alle sue esigenze. La tabella piccola può essere caricata in modo permanente nella cache del DBMS, la tabella con una velocità di scrittura bassa può avere impostazioni diverse rispetto alla tabella con una velocità di aggiornamento elevata per occupare meno spazio su disco, ecc. A seconda delle query, è possibile utilizzare indici diversi, ecc. È possibile dati denormalizzati in modo trasparente con viste materializzate, ecc.

  • Parametri delle tabelle (dimensione dell'allocazione, ecc.)
  • Indici (combinati, tipi, ecc.)
  • Parametri a livello di sistema (dimensioni della cache, ecc.)
  • Partizionamento
  • Denormalizzazione

Prova prima a migliorare il design logico, quindi il design fisico. (Il confine tra entrambi è comunque vago, quindi possiamo discutere della mia categorizzazione).

Ottimizza la manutenzione

Il database deve essere gestito correttamente per rimanere il più efficiente possibile. Ciò include alcune operazioni di manutenzione che possono avere un impatto sulle prestazioni, ad es.

  • Mantieni le statistiche aggiornate
  • Riordina periodicamente le tabelle critiche
  • Manutenzione del disco
  • Tutto il materiale di sistema per avere un server che spacca