Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/03/2011, 11h47   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2008
Messages : 202
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 202
Points : 13
Points : 13
Par défaut Erreur dans l'observateur d'évènement pour la croissance automatique

Bonjour,

J'ai un programme qui injecte des gros volumes de données dans une base SQL SERVER.
Parfois (c'est assez rare), le programme plante et j'obtiens ceci dans l'observateur d'évènements:

La croissance automatique du fichier 'xxxxx_log' dans la base de données 'xxxxx' a été annulée par l'utilisateur ou a expiré au bout de 18393*millisecondes. Utilisez ALTER DATABASE pour définir une valeur FILEGROWTH moins élevée pour ce fichier ou pour définir explicitement une nouvelle taille de fichier.

Je sais effectivement qu'il y a un mécanisme de croissante automatique des fichiers de base de données et que l'on peut paramétrer ça via sql management studio mais je trouve que ça craint car un admin ne peut pas toujours savoir à l'avance que la base va grossir (plus ou moins vite).

Que faire pour que SQL Server se débrouille tout seul dans tous les cas ?

Merci
boby62423 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 12h24   #2
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 667
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 667
Points : 8 715
Points : 8 715
Bonjour,

Je pense que l'incrément que vous avez défini pour ce fichier est plus gros que l'espace disque libre dont vous disposez sur le disque qui supporte le fichier du journal des transactions de votre base de données.

Vous pouvez donc déplacer votre base de données par détachement puis rattachement, en plaçant le fichier du journal des transactions sur un disque ayant un plus gros espace libre disponible.

En outre la croissance d'une fichier de base de données est assez long, donc cela doit considérablement ralentir votre requête.
De plus à chaque croissance de votre fichier, il se peut que celui-ci se fragmente, ce qui est également contre-performant

Pour essayer de prédire la taille que doit avoir votre fichier, essayez de voir quelle taille il fait avant d'insérer des données dans le cas où vous n'obtenez pas cette erreur.
Faites ensuite le ratio entre la taille des données que vous avez insérées et la différence entre la nouvelle et l'ancienne taille de votre fichier du journal des transactions.
Pour le jeu de données qui vous cause l'erreur, retaillez en conséquence le fichier, en prenant une marge de 30%.

Pour connaître la taille de votre fichier du journal des transactions, vous pouvez utiliser DBCC SQLPERF(logspace) ou bien la première requête du billet que j'ai publié ici

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h39.


 
 
 
 
Partenaires

Hébergement Web