sql >> Database >  >> RDS >> Sqlserver

Database die>500 miljoen rijen aankan

MSSQL kan zoveel rijen prima aan. De zoektijd is volledig afhankelijk van veel meer factoren dan alleen het simpele aantal rijen.

Het hangt bijvoorbeeld af van:

  1. hoeveel joins die zoekopdrachten doen
  2. hoe goed uw indexen zijn ingesteld
  3. hoeveel ram zit er in de machine
  4. snelheid en aantal processors
  5. type en spilsnelheid van harde schijven
  6. grootte van de rij/hoeveelheid gegevens die in de zoekopdracht zijn geretourneerd
  7. Snelheid/latentie netwerkinterface

Het is heel gemakkelijk om een ​​kleine tabel (minder dan 10.000 rijen) te hebben, waarvoor een paar minuten nodig is om een ​​query uit te voeren. Gebruik bijvoorbeeld veel joins, functies in de waar-clausule en nul-indexen op een Atom-processor met 512 MB totaal ram.;)

Het kost wat meer werk om ervoor te zorgen dat al uw indexen en externe-sleutelrelaties goed zijn, dat uw zoekopdrachten zijn geoptimaliseerd om onnodige functieaanroepen te elimineren en alleen de gegevens terug te geven die u echt nodig hebt. Je hebt ook snelle hardware nodig.

Het komt allemaal neer op hoeveel geld je wilt uitgeven, de kwaliteit van het ontwikkelteam en de grootte van de datarijen waarmee je te maken hebt.

UPDATE Update vanwege wijzigingen in de vraag.

De hoeveelheid informatie hier is nog steeds niet voldoende om een ​​reëel antwoord te geven. U hoeft het alleen maar te testen en uw database-ontwerp en hardware indien nodig aan te passen.

Ik zou bijvoorbeeld heel gemakkelijk 1 miljard rijen in een tabel kunnen hebben op een machine met die specificaties en een "select top(1) id from tableA (nolock)"-query uitvoeren en een antwoord krijgen in milliseconden. Op dezelfde manier kun je een "select * from tablea"-query uitvoeren en het duurt even, want hoewel de query snel wordt uitgevoerd, duurt het een tijdje om al die gegevens over de draad over te dragen.

Punt is, je moet testen. Dat betekent:de server instellen, enkele van uw tabellen maken en ze vullen. Vervolgens moet u de prestaties afstemmen om uw query's en indexen goed te krijgen. Als onderdeel van de prestatieafstemming ga je niet alleen ontdekken hoe de query's moeten worden geherstructureerd, maar ook precies welke delen van de machine mogelijk moeten worden vervangen (dwz:schijf, meer ram, cpu, enz.) Op basis van het slot en wachttypes.

Ik raad je ten zeerste aan om een ​​of twee DBA's in te huren (of contracteren) om dit voor je te doen.



  1. Oracle Pro*C/OCI-installatiehandlers voor SIGSEGV/SIGABRT en vrienden - waarom en hoe uit te schakelen?

  2. Hoe een UITLEG ANALYSE te begrijpen?

  3. Kolomtelling komt niet overeen met waardetelling in rij 1

  4. Vind waarden die geen getallen bevatten in PostgreSQL