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

Administration SQL Server Discussion :

Cet élément est en cours d'utilisation. :(


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Par défaut Cet élément est en cours d'utilisation. :(
    Bonjour à tous

    Tout d'abord, merci pour tout ce que j'ai appris grâce à ce forum depuis des années.

    Si je prend la plume virtuelle c’est que je n’ai pas réussi à trouver mon bonheur cette fois.


    Je cherche à identifier les logins windows qui me bloque l’accès à certaines tables.

    Par exemple à la table F_DOCENTETE.

    Je sais identifier la liste des documents ouverts grâce à cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DECLARE
    	@lBase int,
    	@lTable int,
    	@lRes int
     
    SELECT @lBase = DB_ID()
    SELECT @lTable = OBJECT_ID(@cbFile)
    EXECUTE master..xp_CBIsRecordLock @@SPID,@lBase,@lTable,@cbMarq,@lRes OUTPUT
    RETURN @lRes
    Je peux savoir qui se cache derrière un processus, mais il faut que je connaisse son ID.
    Je pourrais me servir d'une requête dans ce genre-là.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT NT_USERNAME,* FROM MASTER..SYSPROCESSES WHERE spid = @@SPID
    Bref, je sais quels documents sont bloqués.
    Je sais comment identifier si j’ai l’ID, mais je ne sais pas identifier qui bloque quoi ou qui est sur quoi.

    Une idée ?

    Précision d'importance, il faut que cela fonctionne sous SQL2000.

  2. #2
    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,

    Sous SQL Server 2000, la seule solution me semble de requêter la table master.dbo.sysprocesses.

    Sous SQL Server 2005 et 2008, vous pouvez utilisez les vues et fonctions de gestion dynamiques :
    - sys.dm_exec_sessions
    - sys.dm_exec_connections
    - sys.dm_exec_requests
    - sys.dm_exec_sql_text

    Pour savoir quelle tâche en bloque d'autres, et extraire l'instruction en cours d'exécution qui provoque le bloquage

    @++

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Par défaut
    Bonjour,

    Merci de votre réponse déjà.

    Je n'ai que SQL2000 à disposition, donc je ne peux utiliser que master.dbo.sysprocesses

    J'ai regardé, on ne voit pas quelle table est en cours d'utilisation.

    J'ai l'impression que je ne suis pas en face d'un vrai blocage, mais plutôt
    d'un système de flag qui verrouille la ligne sans utiliser les blocages SQL.

    La colonne "blocked" est à 0 partout dans master.dbo.sysprocesses.

    Je cherche comment savoir qui utilise quoi et je ne vois pas.

  4. #4
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    Est ce que sp_lock repond a votre attente ?

    http://msdn.microsoft.com/en-us/libr...4(SQL.80).aspx

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Par défaut
    Non, malheureusement.

    Ni
    ou
    Merci quand même.

    Je soupçonne qu'il y ai une information mémorisée quelque part
    dans une table spécifique, mais je ne sais pas où.

    Cette base, est une base Sage.
    Elle utilise des verrous qui ne sont pas des blocages SQL.

    Ce n'est pas gagné mon histoire.

    Bref, je craint que je n'aurais pas de réponses vu que les verrous
    sont spécifiques.

  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 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
    je pense que vous confondez verrous et privilèges d'exécution.

    Un privilège est la possibilité pour un utilisateur d'accéder à telle ou telle table ou vue pour une commande SQL précise (SELECT, UPDATE, INSERT, DELETE). Lisez ce que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/sqlaz/dcl/

    Un verrou est un mécanisme interne au moteur destiné à protéger l'accès à la ressource (ligne, page, table....) le temps d'une lecture ou d'une mise à jour.

    Sous SAGE les tables sont protégées de la mise à jour par des mécanismes de CHECKSUM spécifique afin des les bidouilleurs n'aillent pas foutre la m... en polluant les données. Ceci pour des questions de responsabilité juridiques parfaitement justifiées.

    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. La ressource demandée est en cours d'utilisation
    Par Romantic_a dans le forum IIS
    Réponses: 0
    Dernier message: 29/05/2008, 17h36
  2. [SQL] Tester si un fichier est en cours d'utilisation
    Par obordelow dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/04/2007, 14h07
  3. Réponses: 14
    Dernier message: 07/07/2006, 16h27
  4. Réponses: 1
    Dernier message: 31/03/2006, 11h24
  5. savoir si un module est en cours d'utilisation
    Par stoyak dans le forum Bioinformatique
    Réponses: 4
    Dernier message: 22/02/2006, 12h07

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