sql >> Database >  >> RDS >> Sqlserver

Waar hangt de databasequery en de invoegsnelheid van af?

Voor een ruwe vergelijking:het TPC-C-benchmarkrecord voor SQL Server ligt rond de 1,2 miljoen transacties per minuut, en is de afgelopen 4 jaar ongeveer zo geweest (begrensd door de 64 CPU OS-limiet). Dat is iets in de marge van ~16k transacties per seconde . Dit is op super high-end machines, 64 CPU's, veel RAM, geaffiniseerde clients per NUMA-knooppunt en een serverly kort gestript I/O-systeem (slechts ongeveer 1-2% van elke spindel wordt gebruikt). Houd er rekening mee dat dit TPC-C-transacties zijn, dus ze bestaan ​​uit verschillende bewerkingen (ik denk dat het gemiddeld 4-5 keer lezen en 1-2 keer schrijven is).

Nu moet u deze hoogwaardige hardware terugschalen naar uw daadwerkelijke implementatie en krijgt u de marge waar u uw verwachtingen kunt stellen voor de algehele OLTP-transactieverwerking .

Voor het uploaden van gegevens is het huidige wereldrecord ongeveer 1TB in 30 minuten (indien nog actueel...). Enkele tienduizenden inserts per seconde is behoorlijk ambitieus, maar haalbaar, mits goed uitgevoerd op serieuze hardware. Het artikel in de link bevat tips en trucs voor een hoge ETL-doorvoer (bijv. gebruik meerdere uploadstreams en koppel deze aan NUMA-knooppunten).

Voor uw situatie zou ik u eerst en vooral adviseren meten dus je ontdekt de knelpunten en vraagt ​​het dan specifiek vragen om specifieke knelpunten op te lossen. Een goed startpunt is de Wachten en wachtrijen whitepaper .



  1. Hoe maak je een boom in html + php(codeIgniter)

  2. Kap de datum af tot alleen uur/minuut

  3. oracle plsql indien niet gevonden herhaal

  4. Verwerk utf-8-gegevens van MySQL in C++ en geef het resultaat terug