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 :

TempDB trop grosse


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Par défaut TempDB trop grosse
    Bonjour tous,

    Je suis assez débutant dans le monde de BDDs. J'ai récemment adopté un système de BDDs et je un problème avec la taille de la base tempDB:

    Plus précisement nous avons une baie de disques sytème blade et dedans on a plusieurs partitions. Les données des bases de prod sont sur un autre disque avec assez d'éspace. Par contre le disque qui heberge nos bases systèmes fait que 90Go.

    Notre système (un site web) est très transactionnel et donc le tempDB fait 46Go sur le disque. Récemment on a lancé une tâche planifiée de mauvaise architecture et le tempDB a gonflé jusqu'au point que le disque était absolument plein. J'ai du donc redémarrer l'instance pour restaurer le service.

    Par contre la base tempDB fait toujours 46Go (ou il utilise actuellement 1.5Go)

    Les autre devs me demandent de faire un SHRINKDATABASE sur le tempDB mais je suis pas persuadé que cela soit une bonne chose à faire.

    Vous avez des suggestions?

  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 997
    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 997
    Billets dans le blog
    6
    Par défaut
    Vous avez raison de ne pas être persuadé que cela soit une bonne chose à faire. Les développeurs sont généralement nuls en matière d'admin de SGBDR !

    Si tempdb a autant cru, c'est qu'elle est beaucoup utilisée, soit pour des objets explicite (création de tables temporaires, de variables tables ou d'UDF table) ou implicite (GROUP BY, ORDER BY, calcul d'agrégat sur des requêtes volumineuses, utilisation de trigger, du niveau d’isolation SNAPSHOT, de curseurs.......).

    Donc vous avez deux solutions pour résoudre le problème :
    1) faire en sorte que vos développeurs travaillent proprement en faisant du code ensembliste et non itératif (donc interdire les curseur, les tables temporaires, les variables table, les UDF table...) et minimisent l'utilisation des déclencheurs et du niveau d'isolation SNAPSHOT...
    2) déplacer les fichiers de le tempdb sur d'autres disques, MS recommandant d'avoir le JT sur un agrégat très rapide (RAID 0+1 ou 10) et plusieurs fichiers de données, d'égale grandeur sur différents axes physiques.

    A lire : http://blog.developpez.com/sqlpro/p8...t-le-stocakge/

    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 expérimenté
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Par défaut
    Merci de votre réponse! Je pensait qu'effectivement la solution se trouve dans le déplacement des fichiers tempDB sur un autre disque ou nous avons pas mal d'espace restant. La question est maintenant : lequel des disques.

    Cette manip va forcement demander un redémarrage de l'instance. Combien de temps dois-je envisager pour cela? C'est une instance de prod alors c'est moyen de le faire.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 997
    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 997
    Billets dans le blog
    6
    Par défaut
    Vous pouvez utiliser la commande ALTER DATABASE tempdb MODIFY FILE en production. Cela ne fait que modifier les métadonnées préventivement (pas de déplacement des fichiers).
    Puis programmer un redémarrage de l'instance SQL via une tâche planifiée cette nuit par le planif de windows.
    N'oubliez pas de la retirer le lendemain !
    Et supprimez les anciens fichiers de tempdb devenus obsolètes...

    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/ * * * * *

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Et n'oubliez pas de vérifier que le compte de service qui exécute SQL Server a le droit Perform volume maintenance tasks, de sorte que l'allocation des fichiers de TempDB se fasse rapidement

    @++

Discussions similaires

  1. [HSQL] Une BD pas trop grosse, c'est quoi ?
    Par Djobird dans le forum JDBC
    Réponses: 3
    Dernier message: 03/05/2007, 11h06
  2. Base de données trop grosse pour sql
    Par creale10 dans le forum Oracle
    Réponses: 2
    Dernier message: 08/12/2006, 10h25
  3. Taille Jar trop grosse
    Par lil_jam63 dans le forum Java ME
    Réponses: 7
    Dernier message: 25/11/2004, 14h19
  4. [Dump][PHPmyAdmin] table trop grosse???
    Par Slein dans le forum Administration
    Réponses: 3
    Dernier message: 03/06/2004, 23h04

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