Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Base de données pouvant gérer> 500 millions de lignes

MSSQL peut très bien gérer autant de lignes. Le temps de requête dépend entièrement de bien plus de facteurs que le simple nombre de lignes.

Par exemple, cela va dépendre de :

  1. combien de jointures font ces requêtes
  2. la qualité de la configuration de vos index
  3. combien de ram est dans la machine
  4. vitesse et nombre de processeurs
  5. type et vitesse de broche des disques durs
  6. taille de la ligne/quantité de données renvoyées dans la requête
  7. Vitesse/latence de l'interface réseau

Il est très facile d'avoir une petite table (moins de 10 000 lignes) qui prendrait quelques minutes pour exécuter une requête. Par exemple, en utilisant de nombreuses jointures, des fonctions dans la clause where et des index nuls sur un processeur Atom avec 512 Mo de RAM totale.;)

Il faut un peu plus de travail pour s'assurer que tous vos index et relations de clé étrangère sont bons, que vos requêtes sont optimisées pour éliminer les appels de fonction inutiles et ne renvoyer que les données dont vous avez réellement besoin. De plus, vous aurez besoin de matériel rapide.

Tout dépend du montant que vous souhaitez dépenser, de la qualité de l'équipe de développement et de la taille des lignes de données avec lesquelles vous traitez.

MISE À JOUR Mise à jour en raison de changements dans la question.

La quantité d'informations ici n'est toujours pas suffisante pour donner une réponse concrète. Vous n'aurez qu'à le tester et à ajuster la conception et le matériel de votre base de données si nécessaire.

Par exemple, je pourrais très facilement avoir 1 milliard de lignes dans une table sur une machine avec ces spécifications et exécuter une requête "select top(1) id from tableA (nolock)" et obtenir une réponse en quelques millisecondes. De la même manière, vous pouvez exécuter une requête "select * from tablea" et cela prend un certain temps car bien que la requête s'exécute rapidement, le transfert de toutes ces données sur le câble prend un certain temps.

Le truc c'est qu'il faut tester. Ce qui signifie, configurer le serveur, créer certaines de vos tables et les remplir. Ensuite, vous devez passer par le réglage des performances pour que vos requêtes et vos index soient corrects. Dans le cadre du réglage des performances, vous allez découvrir non seulement comment les requêtes doivent être restructurées, mais aussi exactement quelles parties de la machine pourraient avoir besoin d'être remplacées (c'est-à-dire :disque, plus de RAM, processeur, etc.) en fonction du verrou. et les types d'attente.

Je vous recommande fortement d'embaucher (ou de contracter) un ou deux DBA pour le faire pour vous.