2009-08-18 24 views
1

Nous avons un plan de maintenance hebdomadaire pour réduire toutes les bases de données utilisateur et reconstruire leurs index. Cela fonctionne correctement jusqu'à ce que nous ayons créé une base de données en lecture seule, à chaque fois que le plan s'exécute, il échoue lorsqu'il commence à traiter cette base de données en raison de son état en lecture seule. Autant que je peux voir, nous avons deux options supprimer le drapeau en lecture seule de la base de données, c'est possible, mais comme la base de données n'est mise à jour qu'une fois par trimestre, il est logique d'utiliser le fonctionnalité en lecture seule. Ou sélectionnez manuellement la base de données que le plan doit exécuter pour toutes les bases de données des utilisateurs, à l'exception de la base de données en lecture seule, ce qui oblige les utilisateurs à ne pas oublier d'ajouter de nouvelles bases de données dans le plan.SQL Server 2005 rétrécit et reconstruit les index

Quelqu'un at-il des suggestions d'une meilleure façon de le faire?

Merci

Neil

Répondre

1

pourquoi vous CISSEMENT la base de données en premier lieu? aussi il n'y a pas besoin de maintenir la lecture opnly db est comme ça.

1

Je supprime l'indicateur de lecture seule si vous ne souhaitez pas personnaliser le plan de maintenance. Pourquoi réduisez-vous aussi les DB? Si la base de données atteint une taille donnée, il s'agit probablement de sa taille actuelle naturelle.

Rappelez-vous également qu'une reconstruction d'index (règle d'or) nécessite un espace libre de 120% de la taille de la table cible. Par exemple, une table de 500 Mo nécessite 600 Mo d'espace libre.

Il est inutile de se rétrécir puis reconstruire ... et vous aurez la fragmentation des fichiers horrible trop

1

Je suppose que pourrait modifier le plan d'entretien pour commencer une « instruction d'exécution T-SQL » étape, qui supprime la lecture seule flag (ALTER DATABASE database-name SET READ_WRITE) et ajoutez une dernière étape pour le réinitialiser: ALTER DATABASE nom de base de données SET READ_ONLY