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 inaccessible browsing et verrous!


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par défaut Tempdb inaccessible browsing et verrous!
    Bonjour,

    nous avons migré de sql 2000 en sql 2008. sous 2008 les bases sont restées pour le moment en compatibilité 2000.

    aparrement la tempdb se lock au bout de quelques minutes d'utilisations et lié à la charge utilisateurs sur le serveur SQL. impossible de browser les tables ou les SP par la suite sur cette tempdb. les autres sont OK.
    idem pour une application qui se trouve en face d'une base utilisateur qui sort dorénavant avec des timed out, qui n'avais pas lieu en sql 2000?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * from sys.dm_tran_locks
    select * from sys.dm_os_waiting_tasks
    sp_who2
    me donnent des résultats mais difficilement exploitables. notamment pour os_waiting_task qui me renvoi une adress de job et non le nom du job par exemple.


    si vous avez des pistes concernant mon problème je suis preneur.

    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 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Probablement des transactions non correctement validées ou annulée utilisant des tables temporaires.

    Voyez si le trace flag 5302, vous permet de sortir de l'impasse :
    "Alters default behavior of select…INTO (and other processes) that lock system tables for the duration of the transaction. This trace flag disables such locking during an implicit transaction.
    "
    Le mettre dans le service en -T

    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
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par défaut
    Bonjour

    merci pour la réponse.
    pouvez vous m'aiguillez comment faire l'ajout du flag avec -t dans le service; je ne comprend pars vraiment le fonctionnement? (désolé)

    je constate au lancement de procédures stockées qui peuvent durer assez longtemps que des lock sont posés de façon illimité il me semble. voila l'analyse
    si je constate au niveau moniteur d'activité :
    -> temp d'attente 85859554 (ms) en état running pour le spid 44
    -> un lock posé de 8000 ms qui ne baisse jamais
    -> si je regarde par select * from sys.dm_tran_locks je constate plusieurs
    DATABASE BULKOP_BACKUP_LOG sur id database = 2 = tempdb
    -> si je lance un sp_who2 je vois spid 44 et 45 suspended blocked by 44 ce ceux plusieurs fois.

    ps : pour info, nous avons migré de sql 2000 a sql 2008 r2 64bits et ces pb font suite à cette migration.

    si une personne pourrai me dire poruquoi je me retrouve avec des bulkop_backup_log alors que je n'ai aucun travaux de backuop qui est lancé a ce moment ni même dans les procédures stockées! encore moins en sql 200 ou cela fonctionnait parfaitement

    Merci de votre aide.

  4. #4
    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
    Bonjour,

    Quelle est la taille de votre base de données TempDB, et l'espace libre sur les disques qui la supportent (EXEC xp_fixeddrives) ?
    ça sent le rollback ou timeout sur croissance du fichier du journal des transactions ...

    @++

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par défaut
    le serveur a 10gb de memoire et 4 vpcu
    j'ai donc crée 4 fichiers tempdb
    tempdev -> mdf
    tempdev1 a tempdev3 -> ndf
    chacune de ses bases est de taille équivalente de 150 Mo avec 100 de log ctroissance par 10% , illimité

    sinon la proc stock crée un tables , envoi un mail, delete la table, etc X8.. cela dans un BEGIN TRAN.

    merci a+

  6. #6
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Il faudrait avoir plus de détails concernant vos processus qui bloquent :

    Il faudrait récupérer la requête qui bloque. Pouvez vous poster le résultat de cette requête :

    ++

  7. #7
    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
    Je crois que vous confondez fichier et base de données ... ce n'est pas la même chose !
    Utilisez plutôt la requête que je donne dans mon billet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    USE TempDB
    GO
     
    ;WITH  
      CTE AS  
      (  
      SELECT name AS nomLogique,  
      physical_name AS nomPhysique,  
      CASE is_percent_growth 
      WHEN 0 THEN CAST(growth * 8 / 1024 AS VARCHAR(8)) + ' MB' 
      ELSE CAST(growth AS VARCHAR(3)) + ' %' 
      END AS accroissement,  
      CAST((size * 8) / CAST(1024 AS NUMERIC(14, 2)) AS NUMERIC(14, 2)) AS tailleFichier_MB,  
      CAST((FILEPROPERTY(name, 'SpaceUsed') * 8) / CAST(1024 AS NUMERIC(14, 2)) AS NUMERIC(14, 2)) AS espaceOccupe  
      FROM sys.database_files  
      )  
    SELECT nomLogique,  
      nomPhysique,  
      tailleFichier_MB,  
      accroissement,  
      espaceOccupe AS espaceOccupe_MB,  
      tailleFichier_MB - espaceOccupe AS espaceLibre_MB,  
      CAST((CAST(espaceOccupe AS NUMERIC(14, 2)) / tailleFichier_MB) * 100 AS NUMERIC(14, 2)) AS [%occupe],  
      CAST((CAST(tailleFichier_MB - espaceOccupe AS NUMERIC(14, 2)) / tailleFichier_MB) * 100 AS NUMERIC(14, 2)) AS [%libre]  
    FROM CTE
    @++

Discussions similaires

  1. MySQL inaccessible
    Par ripat dans le forum Réseau
    Réponses: 5
    Dernier message: 12/08/2004, 16h18
  2. [Installation] Administration inaccessible FB
    Par Sdyman dans le forum Installation
    Réponses: 7
    Dernier message: 04/07/2004, 21h43
  3. [ SWT ] Récupération info d'un Browse
    Par geegee dans le forum SWT/JFace
    Réponses: 11
    Dernier message: 08/06/2004, 16h23
  4. [Plugin] Bouton browse projet avec filtre
    Par jcarre dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 09/04/2004, 13h56
  5. [Kylix] Composant CLX "Browse"
    Par lancelot69 dans le forum EDI
    Réponses: 1
    Dernier message: 20/02/2003, 14h51

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