IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Reduire la BDD système tempdb?


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 175
    Par défaut Reduire la BDD système tempdb?
    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 !

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    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/ * * * * *

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 175
    Par défaut
    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?

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 175
    Par défaut
    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!

  5. #5
    Invité
    Invité(e)
    Par défaut
    Après avoir suivi les conseils de SQLpro côté dev, lire ceci pour réduire la base tempdb.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    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/ * * * * *

Discussions similaires

  1. Déplacer la BD système "tempdb"
    Par camboui dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/07/2011, 09h38
  2. Réponses: 9
    Dernier message: 02/06/2007, 15h42
  3. Réponses: 2
    Dernier message: 17/04/2007, 11h44
  4. Comment récupérer l'heure systéme à partir de la BDD MySql
    Par adil_vpb dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 22/02/2007, 10h05
  5. [BDD/Système de requêtes] Quels choix de deploiement ?
    Par christophe44 dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 12/01/2006, 14h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo