Pourquoi avons-nous besoin de files de données secondaires dans SQL Server?

J'ignore toujours cette option lors de la création d'une nouvelle database sur SQL Server 2005, simplement parce que nous pouvons ignorer quelque chose que nous ne comprenons pas et le laisser tel quel. (Je ne suis pas si dans DBA)

alors maintenant je suis curieux de savoir de quoi il s'agit.

D'après votre expérience, quand pensez-vous que nous devons append des files de données secondaires à ma database et pourquoi en avons-nous besoin?

Beaucoup de cas où cela peut être utile – pour commencer, pour des raisons de disponibilité, il est toujours préférable de conserver uniquement datatables du système dans votre file de données principal (avec Sql2k5 et plus, la database peut être mise en ligne). , vous permettant de réparer / restaurer / etc .. données non-système tout en ayant autant en ligne que possible). Quelques autres cas pour utiliser des files secondaires:

  1. Partitionner des données sur plusieurs LUN
  2. Autorisation des sauvegardes / restaurations partielles / de groupe de files
  3. Segmentation de vos différents types d'access en lecture / écriture entre différents LUN (ie séquentiel vs. random)

Outre les aspects de performance déjà mentionnés par les autres réponses ici, il y a aussi un problème de security.

Les vues de catalogue de la database (qui gardent une trace des tables, des colonnes, des permissions et de tout ce qui concerne le système) sont toujours situées dans le file de données primaire et vous ne pouvez pas changer cela.

Si vous pouvez séparer ces données de catalogue système dans le file de données principal et placer vos données user dans un file secondaire, le file principal est plus petit, reçoit less de mises à jour et d'insertions, et donc risque d'être corrompu par un mauvais disque secteur est minimisé.

Si vos vues de catalogue système (et leurs tables sous-jacentes) sont endommagées ou détruites, l'set de votre database sera grillée – vous voulez donc certainement avoir la moindre chance d'endommager ce file de données primaire.

Ce n'est probablement pas un gros problème dans une database de taille plus petite à moyenne, mais pourrait être un point à considérer dans une configuration plus grande.

Une des grandes raisons est I / O. La possibilité de partitionner vos données signifie que les E / S sont maintenant réparties sur plusieurs lecteurs / lecteurs / etc. ce qui peut considérablement améliorer les performances.