Documentation PostgreSQL 7.4.29 | ||||
---|---|---|---|---|
Pr�c�dent | Arri�re rapide | Chapitre 43. Catalogues syst�me | Avance rapide | Suivant |
La vue pg_locks fournit un acc�s aux informations concernant les verrous d�tenus par les transactions ouvertes � l'int�rieur du serveur de bases de donn�es. Voir le Chapitre 12 pour une discussion plus importante sur les verrous.
pg_locks contient une ligne par objet verrouillable actif, mode de verrouillage demand� et transaction indiqu�e. Donc, le m�me objet verrouillable pourrait appara�tre plusieurs fois si plusieurs transactions ont pris ou attendent des verrous sur celui-ci. N�anmoins, un objet qui n'est pas verrouill� n'appara�tra pas du tout. Un objet verrouill� est soit une relation (c'est-�-dire une table) soit un identifiant de transaction.
Notez que cette vue inclut seulement des verrous au niveau de la table, pas au niveau des lignes. Si une transaction attend un verrou ligne, il appara�tra dans la vue en attente d'un identifiant de transaction du d�teneur actuel du verrou.
Tableau 43-32. Colonnes pg_locks
Nom | Type | R�f�rences | Description |
---|---|---|---|
relation | oid | pg_class.oid | OID de la relation verrouill�e ou NULL si l'objet verrouill� est un identifiant de transaction |
database | oid | pg_database.oid | OID de la base de donn�es dans lequel la relation verrouill�e existe ou z�ro si la relation verrouill�e est une table partag�e globalement ou NULL si l'objet verrouillable est un identifiant de transaction |
transaction | xid | ID d'une transaction ou NULL si l'objet verrouillable est une relation | |
pid | integer | Identifiant (PID) du processus serveur d�tenant ou attendant ce verrou | |
mode | text | Nom du mode de verrou d�tenu ou attendu par ce processus (voir la Section 12.3.1) | |
granted | boolean | vrai si le verrou est d�tenu, faux s'il est attendu |
granted est vrai sur une ligne repr�sentant un verrou tenu par la session indiqu�e. Une valeur faux indique que cette session attend l'acquisition du verrou, ce qui implique qu'une autre session a choisi un mode de verrouillage conflictuel sur le m�me objet partageable. La session en attente dormira jusqu'� la rel�che du verrou (ou jusqu'� ce qu'une situation de blocage soit d�tect�e). Une session seule ne peut attendre d'acqu�rir qu'au plus un verrou � la fois.
Chaque transaction d�tient un verrou exclusif sur son identifiant de transaction durant toute la dur�e de son ex�cution. Si une transaction trouve n�cessaire d'attendre sp�cifiquement une autre transaction, elle le fait en essayant d'acqu�rir un verrou partag� sur l'identifiant de l'autre transaction. Ceci sera couronn� de succ�s seulement lorsque l'autre transaction termine et rel�che son verrou.
Quand la vue pg_locks est acc�d�e, les structures de donn�es du gestionnaire interne de verrous sont momentan�ment verrouill�es et une copie est faite pour que la vue s'affiche. Ceci nous assure que la vue produise un ensemble consistant de r�sultats, tout en ne bloquant pas les op�rations habituelles du gestionnaire de verrous plus longuement que n�cessaire. N�anmoins, il peut y avoir des impacts sur les performances de la base de donn�es si cette vue est lue fr�quemment.
pg_locks fournit une vue globale de tous les verrous du cluster de bases de donn�es, et non pas seulement une vue de ceux de la base en cours. Bien que sa colonne relation puisse �tre jointe avec pg_class.oid pour identifier les relations verrouill�es, ceci ne fonctionnera correctement qu'avec les relations de la base en cours (celles pour qui la colonne database est soit l'OID de la base en cours soit z�ro).
Si vous avez activ� le collecteur de statistiques, la colonne pid peut �tre jointe � la colonne procpid de la vue pg_stat_activity pour obtenir plus d'information sur le propri�taire de la session ou attendant de d�tenir le verrou.
Pr�c�dent | Sommaire | Suivant |
pg_indexes | Niveau sup�rieur | pg_rules |