sql >> Database >  >> RDS >> Sqlserver

Hoe de prestaties van een database verhogen?

Optimaliseer het logische ontwerp

Het logische niveau gaat over de structuur van de query en tabellen zelf. Probeer dit eerst te maximaliseren. Het doel is om zo min mogelijk gegevens op logisch niveau te benaderen.

  • De meest efficiënte SQL-query's hebben
  • Ontwerp een logisch schema dat de behoefte van de applicatie ondersteunt (bijv. type kolommen, enz.)
  • Ontwerp afweging om sommige use-cases beter te ondersteunen dan andere
  • Relationele beperkingen
  • Normalisatie

Optimaliseer het fysieke ontwerp

Het fysieke niveau houdt zich bezig met niet-logische overwegingen, zoals type indexen, parameters van de tabellen, enz. Het doel is om de IO te optimaliseren die altijd de bottleneck is. Stem elke tafel af op zijn behoefte. Een kleine tabel kan permanent worden geladen in de DBMS-cache, een tabel met een lage schrijfsnelheid kan andere instellingen hebben dan een tabel met een hoge updatesnelheid om minder schijfruimte in te nemen, enz. Afhankelijk van de query's kunnen verschillende indexen worden gebruikt, enz. U kunt gedenormaliseerde gegevens transparant met gematerialiseerde weergaven, enz.

  • Tabellenparemeters (toewijzingsgrootte, enz.)
  • Indexen (gecombineerd, typen, enz.)
  • Systeembrede parameters (cachegrootte, enz.)
  • Partitioneren
  • Denormalisatie

Probeer eerst het logische ontwerp te verbeteren, daarna het fysieke ontwerp. (De grens tussen beide is echter vaag, dus we kunnen discussiëren over mijn categorisering).

Het onderhoud optimaliseren

Database moet correct worden beheerd om zo efficiënt mogelijk te blijven. Dit omvat enkele onderhoudstaken die van invloed kunnen zijn op de prestatie, bijv.

  • Houd statistieken up-to-date
  • Kritieke tabellen periodiek opnieuw rangschikken
  • Schijfonderhoud
  • Alle systeemdingen om een ​​server te hebben die rockt


  1. ASP.NET-website implementeren met ODP.NET

  2. Oracle 32-bit Client installeren op Windows Server waarop al 64-bit Oracle Database Server wordt uitgevoerd

  3. Wat is de meest aanbevolen manier om tijd op te slaan in PostgreSQL met Java?

  4. Geen ondersteuning voor OVER in MS SQL Server 2005?