J'ai une base de données appelée example.mdf
Avec une taille totale de 1 Go, qui souffre de problèmes de performance. J'ai vérifié le matériel alloué et il est plus élevé que nécessaire, j'ai vérifié la conception et tout ressemble à la normale, quand je regarde le .mdf
Fichiers dans leur emplacement physique (C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\example.mdf
) J'ai trouvé que la base de données est divisée en plusieurs fichiers example_1.mdf
, example_2.mdf
, example_3.mdf
, Jusqu'à example_7.mdf
.
J'ai un autre fichier de base de données sur le même serveur SQL qui a le même problème.
Pourquoi cela arrive-t-il? Cela affecte-t-il la performance? Comment puis-je empêcher ou arrêter SQL Server de fractionnez mon .mdf
des dossiers? De plus, j'ai besoin de combiner les fichiers déjà divisés.
Qui a déjà créé la base de données a fait cela exprès. En supposant que tous les fichiers de base de données font partie du même groupe de fichiers (les propriétés de la base de données vous le diront), tout ce que vous avez à faire est de faire un fichier de retrait DBCC tout utilise le paramètre VILEFILE.
DBCC SHRINKFILE (Example_1, EMPTYFILE)
GO
ALTER DATABASE MyDatabase REMOVE FILE Example_1
GO
Faites cela pour chacun des fichiers et toutes les données seront remises dans un seul fichier. Vous pouvez ensuite supprimer les fichiers supplémentaires.
Maintenant, les cotes ne font pas mal de votre performance. Vous devrez donc continuer à enquêter sur la raison pour laquelle vous rencontrez des problèmes de performance.
Vous souhaitez recombiner les fichiers car vous pensez que c'est la cause de votre problème de performance. Avez-vous une preuve que c'est en fait?
Il est beaucoup plus probable que le problème soit ailleurs, car la distribution d'une base de données sur plusieurs fichiers augmente réellement les performances dans de nombreux cas.
Choses à regarder d'abord:
Si vous avez examiné tout cela et que vous pensez toujours que le fichier Splitt est votre problème, vous pouvez suivre ces étapes:
Cependant, assurez-vous de ne pas avoir besoin des fichiers. Quelqu'un aurait pu créer des groupes de fichiers pour permettre la partition. Dans ce cas, vous ne pouvez pas combiner les fichiers sans d'abord déplacer toutes les tableaux et les partitions des autres groupes de fichiers au groupe de fichiers principaux.
Les extensions .MDF ne comptent pas vraiment et le même cas avec des extensions .ndf/.ldf. Le fichier principal/fichier secondaire/fichier journal peut avoir une extension (quelque chose comme .xyz)
Et non, ce n'est pas SQL Server qui a créé plusieurs fichiers de données.
Pour plus de clarté, reportez-vous ici: ne base de données peut-elle avoir plus d'un fichier MDF?
Si vous souhaitez supprimer les fichiers de données/fichiers de données supplémentaires, veuillez vous reporter à ce message: Comment supprimer des fichiers de données supplémentaires TEMPDB supplémentaires et des fichiers journaux