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

Hvad afhænger databaseforespørgsel og indsættelseshastighed af?

For at få en grov sammenligning:TPC-C benchmark-posten for SQL Server er på omkring 1,2 millioner transaktioner i minuttet, og har været sådan i de sidste 4 år eller deromkring (begrænset af grænsen på 64 CPU OS). Det er noget i bunden af ​​~16.000 transaktioner pr. sekund . Dette er på superavancerede maskiner, 64 CPU'er, masser af RAM, affinitiserede klienter pr. NUMA-node og et serverly kort strippet I/O-system (kun omkring 1-2% af hver spindel bruges). Husk, at det er TPC-C-transaktioner, så de består af flere operationer (jeg tror er 4-5 læsninger og 1-2 skrivninger hver i gennemsnit).

Nu bør du nedskalere denne top-of-line-hardware til din faktiske implementering og vil få boldbanen, hvor du kan indstille dine forventninger til overordnet OLTP-transaktionsbehandling .

Til upload af data er den nuværende verdensrekord ca. 1 TB på 30 minutter (hvis stadig er aktuel...). Flere titusindvis af indsatser i sekundet er ret ambitiøse, men opnåelige, når de udføres korrekt på seriøs hardware. Artiklen i linket indeholder tips og tricks til ETL høj troughput (f.eks. brug flere upload-streams og affinitér dem til NUMA noder).

Til din situation vil jeg råde dig først og fremmest til foranstaltning så du finder ud af flaskehalsene og spørger derefter specifikt spørgsmål, hvordan man løser specifikke flaskehalse. Et godt udgangspunkt er Venter og køer hvidbog .



  1. hvordan man opretter forbindelse til mysql-server ved hjælp af kommandoprompt:fejl

  2. PostgreSQL tsrange:er det korrekt at lower_inf('(-infinity,today)'::tsrange) er falsk?

  3. vis databaseværdi i modal frame viser kun første post

  4. MySQL Left Joins:Vælg alt fra én tabel, men kun matchende værdi i anden tabel med kriterier