Question

J'ai eu une table avec plus de 70 millions d'enregistrements dans une base de données SQL Server, j'ai laissé tomber cette table (une chose une seule fois) pour libérer de l'espace sur le disque, mais il semble que la taille n'a pas beaucoup changé. Je ne vois que je pouvais réduire le db au minimum.

Est-ce que la façon de le faire?

La dernière fois que je l'ai fait un psy à l'aide SQL Server Management Studio, il a fallu quelques heures pour terminer. Y at-il un moyen plus rapide?

entrer image description ici

Était-ce utile?

La solution

Dropping une table libérera l'espace dans la base de données, mais ne sera pas libérer l'espace à Windows. Cela nécessite le rétrécissement du fichier de base de données. Cependant, nous ne voulons pas que le fichier de base de données complète. Nous voulons beaucoup d'espace libre pour que nous charger plus de données que nous ne doivent pas développer le fichier de données fréquemment. Cela provoque la fragmentation du fichier de données sur les disques physiques.

Quant à faire rétrécir plus rapidement, non il n'y a aucun moyen de le rendre plus rapide. Shrinking la base de données nécessite la lecture et la réécriture la plupart des données dans la base de données afin que tout l'espace blanc peut être libéré à partir du fichier de base de données à l'OS. Tout cela IO prend du temps, et provoque beaucoup de problèmes de fragmentation.

Autres conseils

Vous aurez envie de lire DBCC SHRINKFILE très attentivement.

http://technet.microsoft.com/en-us/library /ms189493.aspx

En général, vous ne voulez pas réduire votre base de données la plus petite taille possible sur le disque. Vous voulez quitter SQL Server avec beaucoup d'espace pour qu'il ne doit pas croître beaucoup plus auto. La réponse a ici beaucoup d'informations utiles:

https://stackoverflow.com / questions / 4522719 / à DBCC-SHRINKDATABASE-ou non-à-DBCC SHRINKDATABASE-des thats-la-question

Shrink est une procédure assez cher et peut prendre des heures. Pour utiliser l'espace le plus efficacement possible, vous pouvez transférer des tables dans le nouveau groupe de fichiers avec index clusterisés precreated et déposez précédent. Personnellement, je préfère cela parce qu'il est plus facile de faire ce « psy » en plusieurs étapes et plus predictable- donc plus facile de planifier. Lorsque vous démarrez DBCC SHRINK vous ne savez pas combien de temps cela prendra.

Mise à jour (Merci à mrdennny de le souligner): ceci est une approche très spécifique et ne peut être utilisé si vous avez une base de données en lecture seule (comme entrepôt de données), car lors de la copie des données à une autre table aucune écriture sont autorisés à ce table pour un souci de cohérence. Pour gagner du temps et obtenir des performances maximum de celui-ci, vous pouvez changer la base de données de modèle de récupération SIMPLE et soupçon utilisation TABLOCK -. Ce système permettra d'utiliser la journalisation minimale et faire beaucoup moins écrits dans journal des transactions

Consultez cet article: http: //itknowledgeexchange.techtarget.com/sql-server/deleting-lob-data-and-shrinking-the-database/

"La solution que nous sommes arrivés avec était en fait assez simple. Faites la suppression de la base de données comme d'habitude. Ensuite sauvegarder et restaurer la base de données. Ensuite, faites le psy, suivi par la reconstruction des index clusterisés afin de résoudre le problème de la fragmentation qui la shrink présenter. "

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top