Question

Je développe un plan pour SQL Server 2012 EE à réduire correctement la réduction et la diminution (NCHAR aux types de caractères) Certains champs inutilement unicode Nvarchar (MAX) et souhaitent optimiser la taille de la base de données dans le cadre du temps d'arrêt en faisant une seule fois. rétrécir. Des expériences ont montré une économie d'espace allouée à 50% qui est de 11 g de données.

Après avoir lu et expérimenter, il est évident que la rétrécissement d'une base de données provoque une fragmentation d'index et des indices de reconstruction entraînant la datation de la base de données. Une véritable situation de Catch-22. Je ne veux pas laisser 50% d'espace libre dans la base de données de 11 g de stockage de disque dans ce cas.

Ce qui sera la suivante serait une approche décente pour une réduction unique qui permettrait de finir avec des index non fragmentés et des statistiques d'index à jour?

O sauvegarde avec des sauvegardes de vérification et de double.

o Drop Tous les index.

O reconstruisez toutes les tables trop grasses via une copie dans de nouvelles tables, puis renommez les tables. Cela fonctionne actuellement bien.

o Rétrécissez la base de données laissant une quantité raisonnable d'espace libre.

o recréer tous les index qui ont été abandonnés.

o Validez la base de données et vérifiez la fragmentation.

Soulignez toutes les mises en garde, suggestions, gotchas ou alternatives à considérer très appréciées.

thx, Dave

Était-ce utile?

La solution

Le modèle de récupération simple ne "éteint pas le journal" - donc généralement, à moins que vous ne sortiez de ces activités dans de très petits morceaux, il suffit de pré-dimpliquez le journal suffisamment grand pour gérer les plus grandes reconstructions, et ne vous dérangeez pas de jouer avec le modèle de récupération.

Également, et encore généralement, à moins que vos données ne seront jamais ne se reproduisent à nouveau, libérant l'espace temporairement de peu d'avantages (étant donné que je ne sais pas ce que vous entendez par "raisonnable"). Vous allez avoir besoin de laisser de l'espace libre sur le lecteur, au cas où la base de données se développe à nouveau, n'est-ce pas? Pourquoi rétrécirez-vous seulement de le faire pousser à nouveau? Allez-vous fournir une location à court terme sur cet espace jusqu'à ce que la base de données augmente? Essayez-vous simplement d'éviter les alertes de l'espace libre?

Suggestion: Donnez à ces messages une bonne lecture ...

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