2009-03-04 8 views
7

Je sais que dans SQL Server, le nombre maximal d '"objets" dans une base de données est un peu plus de 2 milliards. Les objets contiennent des tables, des vues, des procédures stockées, des index, entre autres choses. Je ne m'inquiète pas du tout d'aller au-delà de 2 milliards d'objets. Cependant, ce que je voudrais savoir, c'est que SQL Server souffre d'un manque de performance dû à un grand nombre de tables. Chaque table que vous ajoutez a-t-elle un impact sur les performances, ou n'y a-t-il aucune différence (en supposant une quantité constante de données)? Quelqu'un a-t-il déjà travaillé avec des bases de données comportant des milliers de tables? Je me demande aussi la même chose à propos de MySQL.Nombre maximal de tables exploitables dans SQL Server et MySQL

Répondre

8

Aucune différence, en supposant une quantité constante de données.

probablement un gain en pratique en raison des choses comme les fenêtres de maintenance réduits (indice plus faible reconstructions), la capacité d'avoir des groupes de fichiers en lecture seule, etc.

Les performances sont déterminées par les requêtes et les index (au niveau le plus élémentaire): pas le nombre d'objets

1

Je doute que SQL Server aura un problème de performances de travail avec des milliers de tables, mais je le ferais sûrement.

J'ai travaillé sur des bases de données avec des centaines de tables dans SQL Server sans problème, cependant.

+0

A dû lire votre première phrase quelques fois. Je comprends d'où vous venez, mais il s'agirait essentiellement de beaucoup de tables ayant toutes la même structure, et non quelque chose qui serait géré individuellement. – Kibbee

+1

Si les tables sont générées par programme, vous pouvez également, en tant que développeur, les traiter par programme. Aucun problème de performance (du moins pas professionnel) – Davos

0

SQl Server peut subir une plus grande perte de performance en utilisant des tables avec beaucoup, beaucoup de colonnes au lieu d'éclater une table liée (même une avec une relation one-to_one). Plus une table large peut probablement avoir des problèmes lorsque les données que vous souhaitez entrer dépasse le nombre d'octets que vous pouvez stocker pour une colonne. Vous pouvez créer une table qui a le potentiel de stocker, par exemple, 10000 octets, mais vous ne pourrez toujours stocker que 8060 octets.

+0

Ceci est une information utile, mais ne répond pas du tout à la question posée. – Kibbee

+0

BUt, la raison pour laquelle vous demandez si trop de tables créeront un problème de performance est que vous envisagez de les consolider plutôt que de créer autant de qui crée en fait un problème de performance beaucoup plus important et la personne doit en être consciente. – HLGEM

4

En termes de nombre maximal de tables, j'ai eu une base de données avec 2 millions de tables. Aucune performance frappée du tout. mes tables étaient petites autour de 15MB chacune.

+0

C'était utile merci. Je suis une googler :) – BOSS

0

Dans mon expérience, je ne pense pas que le nombre de tables va atteindre la performance. Mais alors vous devriez pouvoir justifier pourquoi vous avez autant de tables dans la base de données. En effet, avoir autant de tables du côté de la base de données affectera également le travail du développeur du côté serveur. IMO si vous divisez les tables sur la base des fonctionnalités, vous ne pouvez pas faciliter la vie du développeur, mais vous avez également un gain de performance dans votre application parce que vous avez des tables fixes d'où vous voulez obtenir les données requises. Dites que vous avez besoin de stocker les informations de vente, d'achat, de reçu et de paiement. Tous les ont la même structure de table puis au lieu de les stocker dans une seule table, vous pouvez les stocker tous séparément dans des tables séparées. avec ceux-ci, vous pouvez obtenir tous les détails pour les ventes en table unique, à l'achat dans sa table unique et de même. ainsi, il peut aider à améliorer le temps de réponse du niveau de base de données de l'application qui est l'un des composants les plus lents dans tous les niveaux web ... !!! Bien sûr, nous nous concentrons sur la performance de la base de données par des requêtes SQL, mais une telle structuration peut également indirectement vous aider à améliorer les performances de la base de données.

Questions connexes