[Débutant] Fichier de tempDB plein - Impossible de réduire
4 réponses
Laurent
Bonjour,
j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été
lancées. Résultat, elles ont planté par manque de place sur le disque
(fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur al
partition système ce qui fait chuter fortement les performances générale.
J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des fichiers
de tempDB (shrink) mais ils restent à 5 Go.
J'ai alors créer un autre fichier de données sur une partition avec beaucoup
de place, et j'ai voulu transferer les données du premier fichier vers le
second. Mais là, il ferme la fenêtre sans rien faire : même pas un message
d'erreur.
je suis revenu sur ce serveur le lendemain, la taille de tempdb était
toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de
donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se passe
rien : juste la fenêtre qui se ferme.
Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8 Mo
au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer la
fenêtre.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
bruno reiter
utilises DBCC SHRINKFILE dans l'analyseur de requete (voir aide)
br
"Laurent" wrote in message news:4614dc28$0$25795$
Bonjour,
j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été lancées. Résultat, elles ont planté par manque de place sur le disque (fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur al partition système ce qui fait chuter fortement les performances générale.
J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des fichiers de tempDB (shrink) mais ils restent à 5 Go.
J'ai alors créer un autre fichier de données sur une partition avec beaucoup de place, et j'ai voulu transferer les données du premier fichier vers le second. Mais là, il ferme la fenêtre sans rien faire : même pas un message d'erreur.
je suis revenu sur ce serveur le lendemain, la taille de tempdb était toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se passe rien : juste la fenêtre qui se ferme.
Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8 Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer la fenêtre.
Que faire ?
Merci d'avance de vos réponses Laurent
utilises DBCC SHRINKFILE dans l'analyseur de requete (voir aide)
br
"Laurent" <admingraziani@free.fr> wrote in message
news:4614dc28$0$25795$426a74cc@news.free.fr...
Bonjour,
j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été
lancées. Résultat, elles ont planté par manque de place sur le disque
(fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur
al partition système ce qui fait chuter fortement les performances
générale.
J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des
fichiers de tempDB (shrink) mais ils restent à 5 Go.
J'ai alors créer un autre fichier de données sur une partition avec
beaucoup de place, et j'ai voulu transferer les données du premier fichier
vers le second. Mais là, il ferme la fenêtre sans rien faire : même pas un
message d'erreur.
je suis revenu sur ce serveur le lendemain, la taille de tempdb était
toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de
donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se
passe rien : juste la fenêtre qui se ferme.
Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8
Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer la
fenêtre.
utilises DBCC SHRINKFILE dans l'analyseur de requete (voir aide)
br
"Laurent" wrote in message news:4614dc28$0$25795$
Bonjour,
j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été lancées. Résultat, elles ont planté par manque de place sur le disque (fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur al partition système ce qui fait chuter fortement les performances générale.
J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des fichiers de tempDB (shrink) mais ils restent à 5 Go.
J'ai alors créer un autre fichier de données sur une partition avec beaucoup de place, et j'ai voulu transferer les données du premier fichier vers le second. Mais là, il ferme la fenêtre sans rien faire : même pas un message d'erreur.
je suis revenu sur ce serveur le lendemain, la taille de tempdb était toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se passe rien : juste la fenêtre qui se ferme.
Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8 Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer la fenêtre.
Que faire ?
Merci d'avance de vos réponses Laurent
Laurent
Mais justement, c'est ce que j'ai fait après avoir vu l'échec de "l'assistant" de SQL server managment studio. Mais cela ne change rien
mon fichier fait toujours 5 Go sur le disque alors que l'espace alloué est de 8 Mo......quand je regarde els propeiétés de la BDD.
"bruno reiter" a écrit dans le message de news:
utilises DBCC SHRINKFILE dans l'analyseur de requete (voir aide)
br
"Laurent" wrote in message news:4614dc28$0$25795$
Bonjour,
j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été lancées. Résultat, elles ont planté par manque de place sur le disque (fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur al partition système ce qui fait chuter fortement les performances générale.
J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des fichiers de tempDB (shrink) mais ils restent à 5 Go.
J'ai alors créer un autre fichier de données sur une partition avec beaucoup de place, et j'ai voulu transferer les données du premier fichier vers le second. Mais là, il ferme la fenêtre sans rien faire : même pas un message d'erreur.
je suis revenu sur ce serveur le lendemain, la taille de tempdb était toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se passe rien : juste la fenêtre qui se ferme.
Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8 Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer la fenêtre.
Que faire ?
Merci d'avance de vos réponses Laurent
Mais justement, c'est ce que j'ai fait après avoir vu l'échec de
"l'assistant" de SQL server managment studio. Mais cela ne change rien
mon fichier fait toujours 5 Go sur le disque alors que l'espace alloué est
de 8 Mo......quand je regarde els propeiétés de la BDD.
"bruno reiter" <delete-this.br33@terra.com.br> a écrit dans le message de
news: Ou3lqZ3dHHA.2316@TK2MSFTNGP04.phx.gbl...
utilises DBCC SHRINKFILE dans l'analyseur de requete (voir aide)
br
"Laurent" <admingraziani@free.fr> wrote in message
news:4614dc28$0$25795$426a74cc@news.free.fr...
Bonjour,
j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été
lancées. Résultat, elles ont planté par manque de place sur le disque
(fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur
al partition système ce qui fait chuter fortement les performances
générale.
J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des
fichiers de tempDB (shrink) mais ils restent à 5 Go.
J'ai alors créer un autre fichier de données sur une partition avec
beaucoup de place, et j'ai voulu transferer les données du premier
fichier vers le second. Mais là, il ferme la fenêtre sans rien faire :
même pas un message d'erreur.
je suis revenu sur ce serveur le lendemain, la taille de tempdb était
toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de
donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se
passe rien : juste la fenêtre qui se ferme.
Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8
Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer
la fenêtre.
Mais justement, c'est ce que j'ai fait après avoir vu l'échec de "l'assistant" de SQL server managment studio. Mais cela ne change rien
mon fichier fait toujours 5 Go sur le disque alors que l'espace alloué est de 8 Mo......quand je regarde els propeiétés de la BDD.
"bruno reiter" a écrit dans le message de news:
utilises DBCC SHRINKFILE dans l'analyseur de requete (voir aide)
br
"Laurent" wrote in message news:4614dc28$0$25795$
Bonjour,
j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été lancées. Résultat, elles ont planté par manque de place sur le disque (fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur al partition système ce qui fait chuter fortement les performances générale.
J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des fichiers de tempDB (shrink) mais ils restent à 5 Go.
J'ai alors créer un autre fichier de données sur une partition avec beaucoup de place, et j'ai voulu transferer les données du premier fichier vers le second. Mais là, il ferme la fenêtre sans rien faire : même pas un message d'erreur.
je suis revenu sur ce serveur le lendemain, la taille de tempdb était toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se passe rien : juste la fenêtre qui se ferme.
Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8 Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer la fenêtre.
Que faire ?
Merci d'avance de vos réponses Laurent
Laurent
Bon, j'ai fini par redémarrer le serveur etlà, oh miracle, la taille du fichier est repassé à Mo.
Donc plus de pbm.
Ceci dit, si quelqu'un à une explication je suis preneur. L'informatique c'est pas magique et j'aimerai bien comprendre ce quioi se passait.
Laurent
"Laurent" a écrit dans le message de news: 46155a70$0$15541$
Mais justement, c'est ce que j'ai fait après avoir vu l'échec de "l'assistant" de SQL server managment studio. Mais cela ne change rien
mon fichier fait toujours 5 Go sur le disque alors que l'espace alloué est de 8 Mo......quand je regarde els propeiétés de la BDD.
"bruno reiter" a écrit dans le message de news:
utilises DBCC SHRINKFILE dans l'analyseur de requete (voir aide)
br
"Laurent" wrote in message news:4614dc28$0$25795$
Bonjour,
j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été lancées. Résultat, elles ont planté par manque de place sur le disque (fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur al partition système ce qui fait chuter fortement les performances générale.
J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des fichiers de tempDB (shrink) mais ils restent à 5 Go.
J'ai alors créer un autre fichier de données sur une partition avec beaucoup de place, et j'ai voulu transferer les données du premier fichier vers le second. Mais là, il ferme la fenêtre sans rien faire : même pas un message d'erreur.
je suis revenu sur ce serveur le lendemain, la taille de tempdb était toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se passe rien : juste la fenêtre qui se ferme.
Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8 Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer la fenêtre.
Que faire ?
Merci d'avance de vos réponses Laurent
Bon, j'ai fini par redémarrer le serveur etlà, oh miracle, la taille du
fichier est repassé à Mo.
Donc plus de pbm.
Ceci dit, si quelqu'un à une explication je suis preneur. L'informatique
c'est pas magique et j'aimerai bien comprendre ce quioi se passait.
Laurent
"Laurent" <admingraziani@free.fr> a écrit dans le message de news:
46155a70$0$15541$426a74cc@news.free.fr...
Mais justement, c'est ce que j'ai fait après avoir vu l'échec de
"l'assistant" de SQL server managment studio. Mais cela ne change rien
mon fichier fait toujours 5 Go sur le disque alors que l'espace alloué est
de 8 Mo......quand je regarde els propeiétés de la BDD.
"bruno reiter" <delete-this.br33@terra.com.br> a écrit dans le message de
news: Ou3lqZ3dHHA.2316@TK2MSFTNGP04.phx.gbl...
utilises DBCC SHRINKFILE dans l'analyseur de requete (voir aide)
br
"Laurent" <admingraziani@free.fr> wrote in message
news:4614dc28$0$25795$426a74cc@news.free.fr...
Bonjour,
j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été
lancées. Résultat, elles ont planté par manque de place sur le disque
(fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place
sur al partition système ce qui fait chuter fortement les performances
générale.
J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des
fichiers de tempDB (shrink) mais ils restent à 5 Go.
J'ai alors créer un autre fichier de données sur une partition avec
beaucoup de place, et j'ai voulu transferer les données du premier
fichier vers le second. Mais là, il ferme la fenêtre sans rien faire :
même pas un message d'erreur.
je suis revenu sur ce serveur le lendemain, la taille de tempdb était
toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de
donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se
passe rien : juste la fenêtre qui se ferme.
Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8
Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer
la fenêtre.
Bon, j'ai fini par redémarrer le serveur etlà, oh miracle, la taille du fichier est repassé à Mo.
Donc plus de pbm.
Ceci dit, si quelqu'un à une explication je suis preneur. L'informatique c'est pas magique et j'aimerai bien comprendre ce quioi se passait.
Laurent
"Laurent" a écrit dans le message de news: 46155a70$0$15541$
Mais justement, c'est ce que j'ai fait après avoir vu l'échec de "l'assistant" de SQL server managment studio. Mais cela ne change rien
mon fichier fait toujours 5 Go sur le disque alors que l'espace alloué est de 8 Mo......quand je regarde els propeiétés de la BDD.
"bruno reiter" a écrit dans le message de news:
utilises DBCC SHRINKFILE dans l'analyseur de requete (voir aide)
br
"Laurent" wrote in message news:4614dc28$0$25795$
Bonjour,
j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été lancées. Résultat, elles ont planté par manque de place sur le disque (fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur al partition système ce qui fait chuter fortement les performances générale.
J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des fichiers de tempDB (shrink) mais ils restent à 5 Go.
J'ai alors créer un autre fichier de données sur une partition avec beaucoup de place, et j'ai voulu transferer les données du premier fichier vers le second. Mais là, il ferme la fenêtre sans rien faire : même pas un message d'erreur.
je suis revenu sur ce serveur le lendemain, la taille de tempdb était toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se passe rien : juste la fenêtre qui se ferme.
Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8 Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer la fenêtre.
Que faire ?
Merci d'avance de vos réponses Laurent
Fred BROUARD
Bonjour,
comme vous le dite l'informatique c'est pas mqgique...
Alors expliquons !
Laurent a écrit :
Bon, j'ai fini par redémarrer le serveur etlà, oh miracle, la taille du fichier est repassé à Mo.
Donc plus de pbm.
Ceci dit, si quelqu'un à une explication je suis preneur. L'informatique c'est pas magique et j'aimerai bien comprendre ce quioi se passait.
Laurent
[...]
j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été lancées. Résultat, elles ont planté par manque de place sur le disque (fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur al partition système ce qui fait chuter fortement les performances générale.
Dans mon cours d'optimisation dispensé à Orsys notamment, vous apprendrez qu'il ne faut jamais dépasser un taux d'occupation de l'ordre de 2/3 soit 67% au risque de voir se dégrader singulièrement les performances.
Pour arriver à cela il faut prendre en considération de nombreux éléments : 1) calculer la taille à terme de la base de données, par exemple sur 3 années d'exploitation et dimensionner les fichiers de données, comme ceux du journal à cette taille 2) répartir les différents fichiers de données, journaux et autres bases sur différents agrégats RAID physiques 3) donner une taille fixe à tempdb 4) minimiser l'usage de la base temps db par exemple en : a) n'utilisant jamais de tables temporaires b) en évitant le niveau d'isoaltion snapshot c) en écrivant des requêtes qui évitent les "worktable"
J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des fichiers de tempDB (shrink) mais ils restent à 5 Go.
C'est normal, c'est une sécurité. La rédcation des fichiers d'une base ne peut se faire qu'après une sauvegarde du journal de transaction. En effet, la sauvegarde dudit journal permet une reprise sur erreur avec une précision d'une minute.
J'ai alors créer un autre fichier de données sur une partition avec beaucoup de place, et j'ai voulu transferer les données du premier fichier vers le second. Mais là, il ferme la fenêtre sans rien faire : même pas un message d'erreur.
On ne peut pas transférer le contenu d'un fichier de journal de transaction. On peut le faire avec un fichier de données, à condition de maîtriser le contenu dudit fichier. C'est d'ailleur un exercice que je donne dans mon cours à Orsys
je suis revenu sur ce serveur le lendemain, la taille de tempdb était toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se passe rien : juste la fenêtre qui se ferme.
Encore une fois : la réduction des fichiers d'une base ne peut se faire qu'après une sauvegarde du journal de transaction.
Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8 Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer la fenêtre.
Les données affichées ne sont pas "synchrones". Vous pouvez les rendre synchrone en effectuant une manoeuvre de type UPDATEUSAGE
Que faire ?
Vous l'avez constaté, en arrêtant SQL Server cela a réduit la taille de base.... Quel est ce mystère ? Simplement parce que la base de données tempdb est reconstruite à chaque démarrage de SQL Server avec ses paramètres d'origine.
A NOTER : parmi les tâches du DBA, celui de la surveillance des espaces de stockage est l'un des plus important.
A +
Merci d'avance de vos réponses Laurent
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Bonjour,
comme vous le dite l'informatique c'est pas mqgique...
Alors expliquons !
Laurent a écrit :
Bon, j'ai fini par redémarrer le serveur etlà, oh miracle, la taille du
fichier est repassé à Mo.
Donc plus de pbm.
Ceci dit, si quelqu'un à une explication je suis preneur. L'informatique
c'est pas magique et j'aimerai bien comprendre ce quioi se passait.
Laurent
[...]
j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été
lancées. Résultat, elles ont planté par manque de place sur le disque
(fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place
sur al partition système ce qui fait chuter fortement les performances
générale.
Dans mon cours d'optimisation dispensé à Orsys notamment, vous
apprendrez qu'il ne faut jamais dépasser un taux d'occupation de l'ordre
de 2/3 soit 67% au risque de voir se dégrader singulièrement les
performances.
Pour arriver à cela il faut prendre en considération de nombreux éléments :
1) calculer la taille à terme de la base de données, par exemple sur 3
années d'exploitation et dimensionner les fichiers de données, comme
ceux du journal à cette taille
2) répartir les différents fichiers de données, journaux et autres bases
sur différents agrégats RAID physiques
3) donner une taille fixe à tempdb
4) minimiser l'usage de la base temps db par exemple en :
a) n'utilisant jamais de tables temporaires
b) en évitant le niveau d'isoaltion snapshot
c) en écrivant des requêtes qui évitent les "worktable"
J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des
fichiers de tempDB (shrink) mais ils restent à 5 Go.
C'est normal, c'est une sécurité. La rédcation des fichiers d'une base
ne peut se faire qu'après une sauvegarde du journal de transaction. En
effet, la sauvegarde dudit journal permet une reprise sur erreur avec
une précision d'une minute.
J'ai alors créer un autre fichier de données sur une partition avec
beaucoup de place, et j'ai voulu transferer les données du premier
fichier vers le second. Mais là, il ferme la fenêtre sans rien faire :
même pas un message d'erreur.
On ne peut pas transférer le contenu d'un fichier de journal de
transaction. On peut le faire avec un fichier de données, à condition de
maîtriser le contenu dudit fichier. C'est d'ailleur un exercice que je
donne dans mon cours à Orsys
je suis revenu sur ce serveur le lendemain, la taille de tempdb était
toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de
donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se
passe rien : juste la fenêtre qui se ferme.
Encore une fois : la réduction des fichiers d'une base ne peut se faire
qu'après une sauvegarde du journal de transaction.
Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8
Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer
la fenêtre.
Les données affichées ne sont pas "synchrones". Vous pouvez les rendre
synchrone en effectuant une manoeuvre de type UPDATEUSAGE
Que faire ?
Vous l'avez constaté, en arrêtant SQL Server cela a réduit la taille de
base.... Quel est ce mystère ?
Simplement parce que la base de données tempdb est reconstruite à chaque
démarrage de SQL Server avec ses paramètres d'origine.
A NOTER : parmi les tâches du DBA, celui de la surveillance des espaces
de stockage est l'un des plus important.
A +
Merci d'avance de vos réponses
Laurent
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
comme vous le dite l'informatique c'est pas mqgique...
Alors expliquons !
Laurent a écrit :
Bon, j'ai fini par redémarrer le serveur etlà, oh miracle, la taille du fichier est repassé à Mo.
Donc plus de pbm.
Ceci dit, si quelqu'un à une explication je suis preneur. L'informatique c'est pas magique et j'aimerai bien comprendre ce quioi se passait.
Laurent
[...]
j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été lancées. Résultat, elles ont planté par manque de place sur le disque (fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur al partition système ce qui fait chuter fortement les performances générale.
Dans mon cours d'optimisation dispensé à Orsys notamment, vous apprendrez qu'il ne faut jamais dépasser un taux d'occupation de l'ordre de 2/3 soit 67% au risque de voir se dégrader singulièrement les performances.
Pour arriver à cela il faut prendre en considération de nombreux éléments : 1) calculer la taille à terme de la base de données, par exemple sur 3 années d'exploitation et dimensionner les fichiers de données, comme ceux du journal à cette taille 2) répartir les différents fichiers de données, journaux et autres bases sur différents agrégats RAID physiques 3) donner une taille fixe à tempdb 4) minimiser l'usage de la base temps db par exemple en : a) n'utilisant jamais de tables temporaires b) en évitant le niveau d'isoaltion snapshot c) en écrivant des requêtes qui évitent les "worktable"
J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des fichiers de tempDB (shrink) mais ils restent à 5 Go.
C'est normal, c'est une sécurité. La rédcation des fichiers d'une base ne peut se faire qu'après une sauvegarde du journal de transaction. En effet, la sauvegarde dudit journal permet une reprise sur erreur avec une précision d'une minute.
J'ai alors créer un autre fichier de données sur une partition avec beaucoup de place, et j'ai voulu transferer les données du premier fichier vers le second. Mais là, il ferme la fenêtre sans rien faire : même pas un message d'erreur.
On ne peut pas transférer le contenu d'un fichier de journal de transaction. On peut le faire avec un fichier de données, à condition de maîtriser le contenu dudit fichier. C'est d'ailleur un exercice que je donne dans mon cours à Orsys
je suis revenu sur ce serveur le lendemain, la taille de tempdb était toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se passe rien : juste la fenêtre qui se ferme.
Encore une fois : la réduction des fichiers d'une base ne peut se faire qu'après une sauvegarde du journal de transaction.
Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8 Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer la fenêtre.
Les données affichées ne sont pas "synchrones". Vous pouvez les rendre synchrone en effectuant une manoeuvre de type UPDATEUSAGE
Que faire ?
Vous l'avez constaté, en arrêtant SQL Server cela a réduit la taille de base.... Quel est ce mystère ? Simplement parce que la base de données tempdb est reconstruite à chaque démarrage de SQL Server avec ses paramètres d'origine.
A NOTER : parmi les tâches du DBA, celui de la surveillance des espaces de stockage est l'un des plus important.
A +
Merci d'avance de vos réponses Laurent
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************