2011-04-20 3 views
4

Je travaille sur un projet web2 que je voudrais avoir des milliers de lignes par jour par les utilisateurs. pour gérer cette taille de données J'ai conçu la base de données comme ceci: un fichier .mdf et .ldf en tant que base de données mineure et 1 DB principal pour enregistrer et interroger les adresses des comptes d'utilisateurs et des fichiers DataBase.Multiple MDF FIles VS Single DataBase (SQL Server)

J'ai travaillé plusieurs mois pour ce plan et maintenant je peux le gérer facilement. Je veux savoir si c'est une bonne idée de gérer une énorme taille de données indépendantes? Quelle est la meilleure sorcière à votre avis? ouverture de la connexion de nombreux petits fichiers .mdf ou juste une énorme base de données. Ensuite, je vais diviser le dépôt MDF dans plusieurs ordinateurs.

tous sont gérés par C# et LINQ (.net4)

// Plus tard Descriptions

i construit ce plan et il fonctionne très bien. par exemple: l'ouverture de chaque petit fichier mdf prend 1sec et l'interroge en 0.0sec. il rend l'heure statique pour chaque connexion, mais dans la base de données unique pour le système 50rows doit les trouver par exemple 200 000 lignes et prend environ 4-5sec dans mon système avec simple requête de sélection avec la clé primaire. Pour l'autre exemple, je veux obtenir une rangée entre 500.000 lignes pour lier le contenu de la page et sélectionner 50 commentaires entre 2milmions row, et obtenir le nombre de votes de chaque commentaire, voir le nombre de jour, semaine, mois et total. nombre de likes, réponse de commentaires et obtenir plus de données de 2-3 autres tables, ces querys sont lourds et prennent plus de temps que la petite base de données esclave.

Je pense qu'une bonne conception et les processus doivent fonctionner facilement pour le système. Le seul problème est que les petites bases de données esclaves avec des fichiers sql server prennent plus de taille physique environ 3 Mo par DataBase.

Répondre

0

son difficile à gérer petit fichier MDF u doivent aller avec le serveur SQL et la base de données de serveur SQL fournir un stockage de données 10GB par une base de données OS est facile

+0

Merci pour votre aide. J'ai déjà travaillé sur cette application. Pour vous, il vaut mieux recommencer, n'est-ce pas? –

3

Il n'y a aucune raison de partager quelque chose qui pourrait/devrait exister en tant que base de données unique dans plusieurs parties indépendantes.

Il existe déjà des mécanismes pour partitionner une seule base de données logique entre plusieurs fichiers: Files and Filegroups Architecture ainsi que partition grandes tables (quelques milliers de lignes par jour ne sont pas vraiment qualifiées de grande table).

+0

Merci pour votre aide. J'ai déjà travaillé sur cette application. Pour vous, il vaut mieux recommencer, n'est-ce pas? –

1

"Des milliers de lignes par jour" devraient être des changements de poche pour Sql Server.

D'abord, j'ai voté Alex K réponse. Les groupes de fichiers vous mèneront là où vous voulez être le plus probable. Les tables partitionnées peuvent être surdimensionnées et ne sont disponibles que dans la version Enterprise.

Ce que je vais ajouter est:

http://www.google.com/#q=glenn+berry+dmv&bav=on.2,or.r_gc.r_pw.&fp=73d2ceaabb6b01bf&hl=en

Vous devez modifier vos index. Dans la catégorie des bons vs meilleurs vs meilleurs, les requêtes DMV de Glenn Berry sont «meilleures». Ces requêtes vous aideront à résoudre la majorité des problèmes. Dans la catégorie «meilleure», il y a le jalonnement de la douleur en regardant chaque procédure stockée, en regardant le plan d'exécution et en essayant différentes choses. C'est ce qu'un bon dba est capable de fournir.

Voici quelques «notions de base» sur la configuration des fichiers. Faites attention à la configuration de la base de données TEMP. http://technet.microsoft.com/en-us/library/cc966534.aspx