-
Probleme avec la tempdb
j'ai un prgramme qui insert les données dans ma base de données
cette insertion est faite apres une jointure de table , j'ai enormement de données a inserrer (8 Go).
sur mon serveur de données , j'ai deux partition C : (12,5 go de libre )là ou sql serveur est installer.
pour des raison de performance j'ai deplacer toute les bases est y compri la tempdb dans la partition D la ou j'ai 35 go de libre.
mon probleme a chque fois que he veux faire cette insert , la tempdb gonfle jusqu'a arttenidre 12 go et j'ai un message d'erreur :
Le fichier journal de la base de données 'tempdb' est plein. Pour libérer de la place, sauvegardez le journal des transactionsThe SQL Server cannot obtain a LOCK resource at this time. Rerun your statement when there are fewer active users or ask the system administrator to check the SQL Server lock and memory configurationSQL Server ne peut pas obtenir une ressource LOCK maintenant. Relancez l'instruction quand moins d'utilisateurs seront connectés ou demandez à l'administrateur du système de vérifier la configuration du verrou SQL Server et de la mémoire
je suis vraiment coincé et je ne sais pas quoi faire
merci pour votre aide,
-
Bonjour,
L'insertion se fait dans une transaction, qui remplit tempdb. Essaie de fragmenter ton insert afin de générer plusieurs transactions plus petites.
-
bonjour
merci pour la reponse
1- je ne peut pas fragmenter (aucun moyen de le faire car c'est un programme et ca respect une architecture)
2- est ce que vous pouvez m'expliquer exactement c'est quoi ce message d'erreur, j'ai bien de l'espace qui reste alors pkoi il me met "Le fichier journal de la base de données 'tempdb' est plein"
merci d'avance de votre aide
-
Si ton fichier de log n'est pas configuré en croissance automatique tu dois augmenter manuellement sa taille pour qu'il puisse encaisser le coup.
Enfin c'est une idée comme ca..
Mais le mieux est quand même de pouvoir segmenter une opération aussi lourde
-
En effet, dans les propriétés de tempdb, regarde si la croissance automatique du fichier de journal est configurée.
Si tu ne peux réellement pas fragmenter ton insert, et que tu n'as pas de place sur ton disque, tu peux ajouter un deuxième fichier de log sur un autre disque.
Fais attention de ne pas donner une croissance en pourcentage. Donne une valeur en MB. Sois aussi conscient que la croissance automatique fragmente en qq sorte le journal, et diminue les performances.
-
je pense plutot que ton fichier de log est C
il te faut en créer un deuxiéme sur D .
serge
-
merci pour vos reponse:
1- le fichier log est sur le D , je viens de verifier a l'instant.
2- le base temsdb est configurer en croissance automatique.
l'idee de rajouter une second fichier log de tempsdb et je le met dans un atres disque ca me parait bien sauf je ne sait pas comment faire est ce que : je le creer moi meme une fichier log secondaire, et au besoin le switch sur le deuxieme log se fait automatiquement , ou bien , il ya quelque part une proprieté qui permet d'automatisé la creation d'un deuxieme fichier log au besoins.
merci beaucoup pour votre aide.