2010-11-29 5 views
0

Avoir une grande table qui approche rapidement les 11 millions d'enregistrements. (20 colonnes dans le tableau).SQL Server 2000 Perforamance Question - Grande table

Ma question est, y a-t-il un problème de performance auquel je devrais penser en termes de nombre de lignes dans un tableau?

Vive

+3

Comment la table est-elle utilisée ?? Quel genre de requêtes exécutez-vous contre? Sont-ils bien couverts par les indices ?? Avez-vous beaucoup d'insertions, de mises à jour, de suppressions ?? –

+1

+1 @Marc_s - nous avons besoin de beaucoup plus d'informations sur votre table et comment elle est utilisée. – JNK

+2

À 11 millions d'enregistrements, probablement pas. Tant que vous avez des indices appropriés pour les requêtes les plus courantes, 11 millions d'enregistrements ne sont pas vraiment importants. –

Répondre

1

Cela dépend de la façon dont les données dans le tableau est utilisé. Y at-il beaucoup de lectures, beaucoup d'écritures? Est-ce les données stockées et jamais mis à jour, etc.

Sans plus d'informations, la réponse est « très probablement »

+0

En fait, la réponse correcte serait: "ça dépend" :-) –

+0

La table est bien indexée, et ne reçoit que des mises à jour pendant une synchronisation de données nocturne. Pendant la journée de travail il y a beaucoup de lectures de la table – tmercer

+0

@marc_s: Je pense toujours que c'est "plus probable" plutôt que "ça dépend" ;-) Les tables de cette taille où vous n'avez pas besoin de penser à la performance sont rares – Brimstedt

0

dépend de votre clé primaire et comment l'utiliser u. Si la plupart du temps, les données sont accessibles uniquement par pk et pk est le type de nombre de base (entier), il sera habituel rapide. Mais si vous utilisez où la condition peut-être vous avez besoin de l'accorder vers le haut. Le réglage des performances est basé sur la façon dont vous l'interrogez.

voici mes conseils

  • opérateur égal (=) fournir les meilleures performances.
  • ou un opérateur de temps en temps plus lent. séparer en 2 requête et l'union peut-être plus rapide.

select * from tableA a = 'aaa' union select * from tableA a = 'bbb'

0

Comme d'autres ont fait remarquer qu'il n'y a rien en particulier énorme environ 11 millions de disques et l'utilisation est assez importante mais ce qui est probablement plus important, c'est la croissance des tables. Si votre croissance est d'environ 110K par jour (ou 1% par jour), vous pourrez surveiller les performances confortablement avant de devoir commencer à résoudre les problèmes en augmentant les délais d'exécution, en retravaillant les requêtes ou en prenant des mesures plus drastiques comme la mise à niveau du matériel, la version SQL ou le sharding de base de données.

Cependant, si votre croissance est significativement plus élevée, par ex. ~ 1,1 million d'enregistrements par jour, que vous aurez besoin de commencer à planifier très bientôt, car il est probable que vous commencerez à rencontrer des problèmes à un rythme inconfortable.