Suggestion pour la conception d'une grande base de données SQL Server

8

Nous créons une base de données dans MSSQL 2008 R2 Standard où nous allons stocker un grand nombre d'enregistrements. Nous estimons plus de 200 millions d'enregistrements dans un seul tableau chaque année et nous insérons principalement avec très peu de MISES À JOUR ou SUPPRESSION sur les données. C'est un système d'archivage de données où nous insérons quotidiennement des enregistrements historiques. Nous générerons différents types de rapports sur ce dossier historique à la demande des utilisateurs, nous avons donc certaines préoccupations et nous avons besoin de contributions et de conseils techniques.

  • Quelle est la meilleure façon de gérer ce type de tables d'archives et de base de données?
kodvavi
la source
1
Si vous concevez une grande base de données (ou une grande pour vous), il est essentiel d'obtenir la bonne conception dès le départ et la meilleure façon de le faire est d'embaucher un spécialiste de la base de données qui a travaillé avec les bases de données dans la plage dont vous parlez. . Ceci est plus critique que l'embauche de développeurs d'applications.
HLGEM

Réponses:

12

Voici mon avis:

  1. Si vous rencontrez très peu de mises à jour / suppressions, vous pouvez augmenter le facteur de remplissage de page à 95%. Cela permettra d'économiser de l'espace et de lire. Faites quelques tests cependant.
  2. Partitionnez le tableau en fonction d'une large catégorie comme l'année.
  3. Placez ces partitions sur différents groupes de fichiers.
StanleyJohns
la source
7

200 millions de lignes par an ne sont pas particulièrement grandes (sauf si les lignes sont inhabituellement grandes). Vous devez faire attention aux principes de conception de base de données (normalisation) et utiliser des fonctionnalités standard comme l'indexation et le partitionnement. De toute évidence, le bon matériel est également important.

Il n'y a pas assez d'informations ici pour donner des conseils spécifiques. Envisagez d'embaucher quelqu'un si vous sentez que vous avez besoin d'aide pour la conception détaillée et la mise en œuvre.

nvogel
la source
Merci pour votre contribution. nous avons appliqué les principes de conception dont vous parlez, mais nous travaillerons sur l'indexation une fois la partie développement terminée. Je suppose que pour le partitionnement, vous avez besoin d'une licence d'entreprise et nous avons actuellement une licence d'édition standard.
kodvavi
6
  • Assurez-vous que votre conception permet à vos inserts d'être toujours au bout de la table. Indice Clustered Index.

  • Il n'y a que très peu d'index non cluster prenant en charge les rapports que vous devez faire pour les maintenir au minimum. Ces rapports sont-ils prégénérés? Si oui, considérez cette question: est-ce correct si le rapport prend 2 heures pour être généré? (sans index) ou 1 min (avec index). Peut-être qu'il est acceptable de laisser le rapport prendre 2 heures pour avoir un index de moins? ou peut être pas? Si le rapport n'est pas bien pré-généré, c'est une autre question, car les utilisateurs n'aiment pas attendre et vous devrez peut-être implémenter plus d'index pour prendre en charge vos rapports.

  • D'après la façon dont vous décrivez cette base de données, il semble que vous vous attendiez à beaucoup de lignes et les données s'ajouteront et augmenteront beaucoup. Avez-vous pensé à sauvegarder ce système? Je meen la plupart des données seront les mêmes et en ajoutant juste de nouvelles? Je ne connais pas les exigences commerciales de ce système, mais il me semble que dans un an ou deux, cela pourrait être une base de données de taille considérable et vous pourriez avoir du mal à effectuer de nombreuses sauvegardes complètes. Envisagez de faire une sauvegarde complète avec des journaux de transactions périodiques (hebdomadaires?) Et différentiels (quotidiens?) Et de transactions (toutes les heures?). Bien sûr, comme je l'ai dit, je ne connais pas les exigences de l'entreprise, peut-être n'avez-vous pas besoin de toutes les sauvegardes tout le temps? La taille peut être un problème dans les systèmes d'archivage.

Martin Sjöberg
la source
1
Merci Martin pour votre contribution. En fait, la base de données contient des statistiques et des enregistrements historiques sur les produits agricoles. La croissance est substantielle et vos commentaires sur la sauvegarde sont utiles. Nous avons déjà planifié la routine de sauvegarde et votre contribution a ajouté une grande valeur. Notre processus de sauvegarde existant pour différentes bases de données a quelque peu la même approche. Différentiel quotidien et sauvegarde complète hebdomadaire.
kodvavi
1
La conception de btw est presque définitive et nous utilisons SSRS pour les exigences de rapport et son travail, mais nous sommes toujours en train de peaufiner et d'améliorer les performances avant d'entrer en production.
kodvavi