Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Od czego zależy szybkość zapytań i wstawiania do bazy danych?

Aby mieć przybliżone porównanie:rekord testu TPC-C dla SQL Server wynosi około 1,2 miliona transakcji na minutę i tak jest w ciągu ostatnich 4 lat (ograniczony limitem 64 procesorów w systemie operacyjnym). To jest coś w zasięgu ~16 tys. transakcji na sekundę . Dotyczy to maszyn super high-end, 64 procesorów, dużej ilości pamięci RAM, powiązanych klientów na węzeł NUMA i serwerowego systemu we/wy z krótkim paskiem (używane jest tylko około 1-2% każdego wrzeciona). Pamiętaj, że są to transakcje TPC-C, więc składają się z kilku operacji (myślę, że średnio 4-5 odczytów i 1-2 zapisy).

Teraz powinieneś przeskalować ten topowy sprzęt do rzeczywistego wdrożenia i uzyskać pole manewru, w którym możesz ustawić swoje oczekiwania dotyczące ogólnego przetwarzania transakcji OLTP .

W przypadku przesyłania danych aktualny rekord świata dotyczy 1 TB w 30 minut (jeśli jest nadal aktualny...). Kilkadziesiąt tysięcy insertów na sekundę jest dość ambitne, ale możliwe do osiągnięcia, gdy jest właściwie wykonane na poważnym sprzęcie. Artykuł w linku zawiera porady i wskazówki dotyczące wysokiej przepustowości ETL (np. użyj wielu strumieni przesyłania i powiąż je z węzłami NUMA).

W Twojej sytuacji radziłbym przede wszystkim środek więc znajdź wąskie gardła, a następnie zapytaj konkretne pytania, jak rozwiązać konkretne wąskie gardła. Dobrym punktem wyjścia jest Oczekiwanie i kolejki .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sprawa przestawna, kiedy?

  2. Jaka jest różnica między TEMPORARY TABLE a TABLE VARIABLE w SQL 2008?

  3. Obliczanie terminu na podstawie godzin pracy i świąt

  4. Uzyskaj informacje o kolumnie dla tabeli lub widoku w programie SQL Server (T-SQL:sp_columns)

  5. Jak mogę utworzyć ograniczenie unikatowe SQL na podstawie 2 kolumn?