Fichier MDF de taille beaucoup plus grande que des données réelles
Pour une raison quelconque, mon fichier MDF est 154gigs, cependant, je n'ai chargé 7 concerts de données à partir de fichiers plats. Pourquoi le fichier MDF donc beaucoup plus grande que la véritable source de données?
Plus d'infos:
Seulement un quelques tables avec environ 25 millions de lignes. Pas de grands champs varchar (le plus grand est de 300, la plupart le sont moins que varchar(50). Pas très large tables < 20 colonnes. Aussi, aucun des grands tableaux sont indexés encore. Des Tables avec des indices qui ont moins de 1 million de lignes. Je n'utilise pas de char, seulement varchar pour les chaînes. Type de données n'est pas la question.
S'est avéré qu'il était le fichier de log, pas le fichier mdf. Le fichier MDF est en fait 24gigs qui me semble plus raisonnable, mais qui reste encore de gros à mon humble avis.
Mise à JOUR:
J'ai résolu le problème avec la LDF (log) fichier en changeant le modèle de récupération COMPLÈTE en simple. C'est bien parce que ce serveur est utilisé uniquement pour le développement interne et les processus ETL. En outre, avant de changer de SIMPLE, j'ai dû réduire le fichier JOURNAL. La réduction n'est pas recommandé dans la plupart des cas, cependant, ce fut l'un de ces cas où le fichier journal n'aurait jamais grandi, et tellement vite. Pour en savoir plus voir cette
OriginalL'auteur O.O | 2010-08-16
Vous devez vous connecter pour publier un commentaire.
Pourrait être beaucoup de raisons, peut-être que vous êtes à l'aide de char(5000) au lieu de varchar(5000), peut-être que vous utilisez bigints au lieu de int, nvarchar lorsque tous vous avez besoin est de type varchar, etc etc etc. Peut-être que vous utilisez beaucoup de index par table, ce seront tous les ajouter. Peut-être que votre croissance automatique des paramètres sont mauvais. Vous êtes sûr que c'est le MDF et non pas le fichier LDF droit?
Aussi, l'Indice de Fragmentation pourrait être un facteur. sqlmag.com/article/tsql3/automatic-reindexing.aspx
Je me sens bête. C'est le fichier journal.
Haha - idiot! :p C'est un gros fichier journal pour une relativement petite quantité de données - comment avez-vous chargez - le à l'aide SSIS?
Assurez-vous de sauvegarder le fichier journal. De BOL: "Sous le modèle de récupération complète ou en vrac modèle de récupération, si le journal des transactions n'a pas été sauvegardé récemment, la sauvegarde peut être ce qu'est la prévention de la troncature du journal. Si le journal n'a jamais été sauvegardé, vous devez créer deux sauvegardes du journal afin de permettre le Moteur de Base de données pour tronquer le journal au point de la dernière sauvegarde. Tronquer le journal libère de l'espace pour de nouveaux enregistrements de journal. Pour conserver le journal de remplir à nouveau, prendre le journal des sauvegardes régulièrement."
OriginalL'auteur SQLMenace
Parce que le MDF a été alloué avec 154Gb, ou a grandi à 154Gb par le biais de diverses opérations. Un fichier de base de données a au moins la taille des données, mais il peut être plus grand que la quantité utilisée par n'importe quel montant.
Une question évidente sera comment mesurez-vous la quantité de données dans la base de données? Avez-vous utilisé
sp_spaceused
? Avez-vous vérifiersys.allocation_units
? Avez-vous deviné?Si la taille utilisée est en effet 7Gb de 154Gb, alors vous devriez le laisser tel qu'il est. La base de données a été dimensionné par quelqu'un de cette taille, ou a grandi, et il est susceptible de se développer en arrière. Si vous croyez que la croissance ou le pré-dimensionnement a été accidentelle, alors le point précédent s'applique toujours et vous devez la laisser comme c'est.
Si vous êtes tout à fait positive de la surutilisation est une erreur, vous pouvez diminuer la taille de la base de données, avec toutes les les conséquences négatives de la réduction de la.
OriginalL'auteur Remus Rusanu
Juste au cas où c'est utile pour quelqu'un là-bas, trouvé à cette requête en dba.stackexchange, il utilise le sys.dm_db_database_page_allocations qui compte le nombre de pages par objet, cela inclut un espace de stockage interne et vous donne un réel aperçu de la espacé utilisé par votre base de données.
Grâce à Salomon Rutzky:
https://dba.stackexchange.com/questions/175649/sum-of-table-sizes-dont-match-with-mdf-size
OriginalL'auteur Saul Cruz
Soit réduction AUTOMATIQUE n'est pas activé ou La taille initiale a été fixée à la valeur la plus grande.
OriginalL'auteur ydpages