Bonjour tout le monde
je viens d'apercevoir que ma base de donnée système tempdb atteigne les 48Go.
Comment devrais-je procéder pour le reduire?
Merci !
Bonjour tout le monde
je viens d'apercevoir que ma base de donnée système tempdb atteigne les 48Go.
Comment devrais-je procéder pour le reduire?
Merci !
C'est simple, il suffit de minimiser l'usage des objets consommant de la tempdb :
- évitez d'utiliser les tables temporaires locales ou globales explicites
- récrire vos requête et bien indexer les tables de manière à faire en sorte qu'il n'y ait plus de création de tables de travail dans les plans de requête
- s'interdire l'utilisation du niveau d'isolation SNAPSHOT (SQL Server 2005).
- ne pas créer les index avec l'option SORT IN TEMPDB
- ne pas utiliser de curseur dans les procédures stockées
- ne pas utiliser de variable table dans les procédures ou les fonctions.
En version 2005 les points 1 et 5 sont faciles à faire à l'aide de la CTE.
Si vous êtes obligé d'utiliser des tables temporaires (cas qui devrait être rarissime à part l'import de données), alors les supprimer par un DROP TABLE, aussitôt après usage et dans la même unité de code.
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Merci de m'avoir répondu!
Si j'ai bien compris ma base tempdb a grossi car j'ai utilisé des curseurs et des tables temporaires.
Et maintenant j'ai envie de les supprimer
Mais quand je regarde dans cette base j'ai pas vu de table temporaire.
Où se trouve ces tampons?
Et qu'est-ce que c'est le CTE car j'utilise le sql server 2005?
En fait pour le curseur dans un procédure.
j'execute DEALLOCATE curseur
Et en cas d'une table temporaire je DROP
Mais j'ai toujours ces 48Go
Merci!
Après avoir suivi les conseils de SQLpro côté dev, lire ceci pour réduire la base tempdb.
Attention : il ne sert à rien de réduire les fichiers de la base tempdb (et de toute base d'ailleurs). En effet s'ils ont grossit jusqu'à ce point, il regrossiront un jour ou l'autre à ce même point. Or toute opération de grossissement de fichier est très couteuse et peut générer des blocages, donc des problèmes transactionnels, voire des interblocages.
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Partager