Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Membre habitué Avatar de Baquardie
    Femme Profil pro Jacinthe
    Administrateur de base de données
    Inscrit en
    juillet 2003
    Messages
    264
    Détails du profil
    Informations personnelles :
    Nom : Femme Jacinthe
    Âge : 35
    Localisation : Canada

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

    Informations forums :
    Inscription : juillet 2003
    Messages : 264
    Points : 100
    Points
    100

    Par défaut Que se passe-t-il si tmpdb est plein ?

    Bonjour,

    Hier soir j'ai eu une job (Cube C8) qui a rempli mon fichier database tmpdb, ce qui a résulté que nous n'avions plus du tout d'espace disque.

    Nous regardons ce matin pour trouver des solutions pour ne plus que cela survienne.

    Entres autres je sais qu'une des best practice est de mettre tmpdb sur un disque à part.

    C'est bien beau faire ça, mais notre question est : Si jamais tmpdb grossi et rempli son disque à lui, que se passe-t-il niveau SQL ? Est-ce que le serveur continue de rouler comme il faut pareil ?

    Deuxième question, si jamais l'équipe d'infrastructure me dit qu'ils ne veulent pas sont pas capable de me donner un disque à part, je peux mettre une taille maximale sur tmpdb. Mais encore une fois, que se passe-t-il si le fichier atteint la dite taille. Est-ce que le serveur peut ensuite avoir des difficultés à fonctionner ?

    Merci beaucoup !
    Rien n'est impossible à celui qui n'a pas à le faire
    DBA. Je travaille avec SQL-9, SQL-10

  2. #2
    Expert Confirmé Sénior
    Avatar de mikedavem
    Homme Profil pro David BARBARIN
    Architecte de base de données
    Inscrit en
    août 2005
    Messages
    4 585
    Détails du profil
    Informations personnelles :
    Nom : Homme David BARBARIN
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : août 2005
    Messages : 4 585
    Points : 9 153
    Points
    9 153

    Par défaut

    C'est bien beau faire ça, mais notre question est : Si jamais tmpdb grossi et rempli son disque à lui, que se passe-t-il niveau SQL ? Est-ce que le serveur continue de rouler comme il faut pareil ?
    Le serveur continuera de fonctionner mais toutes les requêtes qui utiliseront tempdb ne pourront plus s'exécuter.

    Deuxième question, si jamais l'équipe d'infrastructure me dit qu'ils ne veulent pas sont pas capable de me donner un disque à part, je peux mettre une taille maximale sur tmpdb. Mais encore une fois, que se passe-t-il si le fichier atteint la dite taille. Est-ce que le serveur peut ensuite avoir des difficultés à fonctionner ?
    Même réponse. Maintenant tu peux essayer de répartir tes fichiers de bases de données tempdb sur plusieurs disques en cas de besoin mais je pense que la vrai question est connaître la cause d'un tempdb plein ? Est-ce que cela t'arrive souvent ? Est-ce arrivé de manière exceptionnelle ? Quelle taille as-tu alloué à tempdb ? ...

    ++

  3. #3
    Membre habitué Avatar de Baquardie
    Femme Profil pro Jacinthe
    Administrateur de base de données
    Inscrit en
    juillet 2003
    Messages
    264
    Détails du profil
    Informations personnelles :
    Nom : Femme Jacinthe
    Âge : 35
    Localisation : Canada

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

    Informations forums :
    Inscription : juillet 2003
    Messages : 264
    Points : 100
    Points
    100

    Par défaut

    Bonjour,

    Merci pour la réponse.

    Non cela n'arrive pas souvent, je dirais aux 6-8 mois environ. Cette fois-ci c'est un cube C8 (Cognos) qui est resté "collé" au serveur pendant 2hrs de temps...

    Au début de la journée tmpdb avait 60 gig et à la fin il était rendu à 260gig. En fait il a pris tot l'espace disque qui restait. En bizounnant un peu j'ai réussi à le réduit à 160 gig, mais j'aimerais quand même retourner au 60 gig de départ, taille qui lui permet de bien fonctionner dans notre environnement de production. Je crains ne pas avoir le choix de repartir le service ce week-end.

    Cela dit, j'ai décidé de mettre une taille maximale au fichier tmpdb, pour éviter que mon disque de data se retrouve plein.

    Je vais par contre moniter la taille de tmpdb pour recevoir un alerte si jamais ça se reproduit....

    Qu'en pensez vous.
    Rien n'est impossible à celui qui n'a pas à le faire
    DBA. Je travaille avec SQL-9, SQL-10

  4. #4
    Expert Confirmé Avatar de StringBuilder
    Homme Profil pro Sylvain Devidal
    Chef de projets
    Inscrit en
    février 2010
    Messages
    1 791
    Détails du profil
    Informations personnelles :
    Nom : Homme Sylvain Devidal
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 1 791
    Points : 2 621
    Points
    2 621

    Par défaut

    Euh... Le tempdb c'est pas la base de travail de SQL Server, c'est à dire là où il stocke les informations en cours de lecture dans les requêtes ?

    Vous devez avoir des requêtes sacrément monstrueuses pour arriver à une telle consommation.

    Je me demande si votre problème ne se situe pas plutôt là. Car déjà 60 Go, je trouve ça monstrueux, mais 260 Go, ça sent quand même le produit cartésien entre plusieurs grosses tables...

    A moins que vous ne fassiez qu'une grosse transaction dans une table temporaire lors de l'extraction de votre cube ?

    En tout cas, le problème me semble plus venir de l'utilisation de la base que de sa configuration.

    http://msdn.microsoft.com/fr-fr/library/ms190768.aspx

    Vous trouverez ici quelques informations sur les raisons possible d'une explosion du tempdb (même si l'article s'applique à SQL Server 2000, les grandes lignes sont toujours parfaitement valables)

    http://sqlserver2000.databases.aspfa...happening.html

    Ca me laisse quand même un avant goût de "tiens, je lance un traitement sur l'ensemble de ma base de données, et je ne fait surtout pas de traitements unitaires"

  5. #5
    Expert Confirmé Sénior
    Avatar de mikedavem
    Homme Profil pro David BARBARIN
    Architecte de base de données
    Inscrit en
    août 2005
    Messages
    4 585
    Détails du profil
    Informations personnelles :
    Nom : Homme David BARBARIN
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : août 2005
    Messages : 4 585
    Points : 9 153
    Points
    9 153

    Par défaut

    Euh... Le tempdb c'est pas la base de travail de SQL Server, c'est à dire là où il stocke les informations en cours de lecture dans les requêtes ?
    Pas exactement ... il ne stocke que les objets temporaires et éventuellement les wortables , workfiles servant aux opérations d'agrégation, de tri, de certains jointures etc ...

    Mais bon vu le contexte (Cognos etc ...) je pense en effet qu'il doit y avoir des opérations qui rapatrient un certain volume de données avec des opérations de tri, de group by ou des opérations de hashage qui doivent être exécutées dans tempdb :-)

    ++

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 362
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 13 362
    Points : 27 472
    Points
    27 472

    Par défaut

    Citation Envoyé par StringBuilder Voir le message
    Euh... Le tempdb c'est pas la base de travail de SQL Server, c'est à dire là où il stocke les informations en cours de lecture dans les requêtes ?

    Vous devez avoir des requêtes sacrément monstrueuses pour arriver à une telle consommation.
    Le problème c'est justement l'utilisation d'outils comme Cognos qui sont des technologies aujourd’hui éculées et obsolètes.
    En effet depuis quelques années déjà, SQL Server dispose d'un moteur OLAP qui permet de faire des cubes pré calculées donc du "vrai" OLAP là ou Cognos fait du pseudo OLAP sur des bases relationnelles c'est à dire du ROLAP !

    Bref utiliser du Cognos pour quelques dizaines de Go de base, ça passe encore mais avec plusieurs centaines de Go vous courrez droit dans le mur !

    En comparaison, je suis à peu près persuadé que ce traitement ne mettrait pas plus de 2 à 3 minutes sur une base SSAS !!!

    Hélas j'ai plusieurs clients encore récalcitrant dans le même cas de figure !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •