2009-11-23 6 views
5

Nous avons une base de données SQL Server 2000 qui contient la plupart des bases de données de nos équipes fonctionnant sur un serveur relativement ancien. Dernièrement, nous avons eu quelques problèmes de ralentissement étranges sur certains de nos appels de base de données dans diverses applications. (Donc, je sais que ce n'est pas spécifique à l'application)Quand compacter une base de données Sql Server?

Il m'a été mentionné que nous devrions envisager de compacter certaines de nos bases de données. Quelles sont les règles générales pour ce faire?

Le compactage d'une base de données est-il simplement considéré comme une maintenance générale? Y a-t-il un nombre magique de bases de données, de tables ou d'enregistrements qui pourraient ralentir ce processus et ainsi être un facteur de compaction?

Nombre de bases de données utilisées activement: 6

Taille moyenne de base de données: 20 Mo à l'exception de FogBugz, qui est sur le 11000MB

+0

Ceci peut être mieux adapté pour une erreur de serveur. Cependant, vos tailles de base de données sont minuscules, en fait. Je doute que le compactage produise des avantages de performance. Le compactage est généralement effectué pour récupérer de l'espace. La performance ne devrait pas être affectée beaucoup, voire pas du tout, si la base de données n'est pas compactée. – Joey

Répondre

4

Vous ne compacter une base de données SQL Server (vous « Shrink » il) sauf si vous en avez vraiment besoin. Ce n'est pas MS Access et ne récupérer l'espace inutilisé (bien, il peut, mais il masque un problème plus important)

Plus probablement, vous avez un index/problème statistique:

  • sur les statistiques de données
  • index fragmentés
  • index manquants

Pour commencer avec cette taille de base de données (petite), je vous suggère de regarder

2

Dans SQL Server, il y a différents bits d'entretien que vous devez faire sur vos bases de données. 10MB est une base de données très très petite, donc rétrécir une base de données ne vaut pas la peine pour vous ("compact" est ce que vous feriez avec une base de données MS Access, dans Sql Server, vous pouvez réduire). Au lieu de cela, il est bien plus probable que vous ne disposiez pas d'index appropriés sur les colonnes fréquemment interrogées dans vos tables. Ou, les index que vous avez sont fragmentés. Un bon point de départ est de voir exactement quelles requêtes prennent beaucoup de temps (bonne idée pour démarrer SQL Profiler et monitor). Vous pouvez ensuite voir ce que font ces requêtes, les tables/colonnes auxquelles elles accèdent, puis vérifier si vous disposez des index appropriés.