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

Baza danych, która może obsłużyć>500 milionów wierszy

MSSQL poradzi sobie z tak dużą liczbą wierszy. Czas zapytania jest całkowicie zależny od znacznie większej liczby czynników niż zwykła liczba wierszy.

Na przykład będzie to zależeć od:

  1. ile łączy te zapytania
  2. jak dobrze skonfigurowane są Twoje indeksy
  3. ile taranów znajduje się w maszynie
  4. szybkość i liczba procesorów
  5. typ i prędkość wrzeciona dysków twardych
  6. rozmiar wiersza/ilość danych zwróconych w zapytaniu
  7. Szybkość/opóźnienie interfejsu sieciowego

Bardzo łatwo jest mieć małą (mniej niż 10 000 wierszy) tabelę, której wykonanie zapytania zajęłoby kilka minut. Na przykład użycie wielu złączeń, funkcji w klauzuli WHERE i zerowych indeksów na procesorze Atom z całkowitą pamięcią RAM o wielkości 512 MB.;)

Trochę więcej pracy zajmuje upewnienie się, że wszystkie indeksy i relacje kluczy obcych są dobre, a zapytania są zoptymalizowane w celu wyeliminowania niepotrzebnych wywołań funkcji i zwracania tylko tych danych, których faktycznie potrzebujesz. Potrzebny będzie również szybki sprzęt.

Wszystko sprowadza się do tego, ile pieniędzy chcesz wydać, jakości zespołu programistów i rozmiaru wierszy danych, z którymi masz do czynienia.

AKTUALIZUJ Aktualizacja z powodu zmian w pytaniu.

Ilość informacji tutaj wciąż nie jest wystarczająca, aby dać odpowiedź w prawdziwym świecie. Musisz tylko przetestować i dostosować projekt bazy danych i sprzęt, jeśli to konieczne.

Na przykład, mógłbym bardzo łatwo mieć 1 miliard wierszy w tabeli na maszynie z tymi specyfikacjami i uruchomić zapytanie "select top(1) id from tableA (nolock)" i otrzymać odpowiedź w milisekundach. Z tego samego powodu możesz wykonać zapytanie „wybierz * z tabeli” i zajmie to trochę czasu, ponieważ chociaż zapytanie jest wykonywane szybko, przesłanie wszystkich danych przez przewód zajmuje trochę czasu.

Chodzi o to, że musisz przetestować. Oznacza to konfigurację serwera, tworzenie niektórych tabel i ich wypełnianie. Następnie musisz przejść przez dostrajanie wydajności, aby uzyskać prawidłowe zapytania i indeksy. W ramach dostrajania wydajności odkryjesz nie tylko, jak należy zrestrukturyzować zapytania, ale także dokładnie, jakie części maszyny mogą wymagać wymiany (tj. dysk, więcej pamięci RAM, procesor itp.) w oparciu o blokadę i czekaj typy.

Gorąco polecam zatrudnić (lub zakontraktować) jednego lub dwóch administratorów baz danych, aby zrobili to za Ciebie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepszy odpowiednik IsInteger w SQL Server

  2. MVC4:UserIsInRole — nie można połączyć się z bazą danych SQL Server

  3. Uzyskaj liczbę nieudanych prób logowania dla logowania z powodu nieprawidłowego hasła w programie SQL Server (T-SQL)

  4. Nieobsługiwane słowo kluczowe:Metadane

  5. Zapisywanie zmian po edycji tabeli w SQL Server Management Studio