2009-06-04 8 views
1

Nous exécutons depuis 2 ans une petite application sur SQL Server 2005 Express Edition La base de données a une taille de 75 Mo à près de 400 Mo dans ce délai, il n'y a pas beaucoup de données .Performances SQL Server Express avec des fichiers journaux volumineux

Mais le fichier journal est arrivé à 3,7 Go maintenant sans changer le matériel, la structure de table ou le code de programme, nous avons noté que les processus d'importation qui nécessitaient 10-15 minutes sont maintenant arrivés à quelques heures.

une idée où pourrait être le problème? Cela dépend du fichier journal? Le 4Go Lock of Express Edition ne porte que sur les fichiers de données ou sur les fichiers journaux? Informations supplémentaires: Il n'y a pas de RAID sur le serveur DB, Il ne fonctionne pas les utilisateurs simultanés (un seul utilisateur est connecté pendant le processus d'importation).

Merci à l'avance Johannes

+0

La nouvelle version, qui passera probablement comme un remplacement, a une limite 10GB http://www.microsoft.com/express/database/ mais si elle est un processus d'importation lent envisage d'examiner les solutions générales d'importation en masse: généralement, vous avez beaucoup d'index sur la table et une importation un-par-un les met à jour après chaque ligne plutôt qu'une fois de manière efficace à la fin. – Rup

Répondre

1

De MSDN:

"La limite de la taille de la base de données de 4 Go applique uniquement aux fichiers de données et de ne pas les fichiers journaux"

SQL Server Express est également limitée dans qu'il ne peut utiliser qu'un processeur et 1 Go de mémoire. Avez-vous essayé de surveiller l'utilisation du processeur/de la mémoire pendant l'exécution de l'importation pour voir si cela provoque un goulot d'étranglement?

3

Que le fichier journal soit si volumineux est un comportement tout à fait normal; dans les deux années que vous avez couru; SQL a suivi les événements qui se produisent dans la base de données au fur et à mesure de ses activités.

Normalement, vous pouvez désactiver ces journaux lorsque vous effectuez une sauvegarde (car vous n'en avez probablement pas besoin de toute façon.) Si vous sauvegardez tout, vous devez modifier le script sql pour vérifier le fichier journal (dans les livres en ligne) Selon la façon dont vous sauvegardez votre salaire peut varier.

Pour l'effacer immédiatement, assurez-vous que personne n'utilise la base de données; open studio de gestion exprimer la base de données et trouver exécuter

backup log database_name with truncate_only 
go 
dbcc shrinkdatabase('database_name') 
+0

Merci pour votre réponse oui aussi je ne suis pas étonné de la taille du fichier journal, mais à propos de la performance fortement brisée et je pense qu'il est lié à la taille du fichier journal, mais aussi après rétrécissement le journal les problèmes de performance existe. – john84

+0

La limite de 4 Go n'inclut pas le fichier journal, ce qui explique pourquoi la réduction n'a pas aidé. –

+0

Si vous pouvez exécuter une requête depuis votre application manuellement; essayez de l'exécuter dans le studio de gestion avec le plan d'exécution réel show activé. Après 2 ans, il peut s'agir d'une fragmentation dans les index ou simplement d'avoir besoin d'index. Le plan d'exécution doit vous indiquer ou vous diriger dans la requête quant à ce qui est lent. si ses indices ont besoin de mettre à jour, vous pouvez réindexer facilement EXEC sp_msForEachTable @ Command1 = 'DBCC DBREINDEX ("?")' go EXEC sp_msForEachTable @ Command1 = 'DBCC INDEXDEFRAG (, "?")' – u07ch

Questions connexes