readme.pgrowlocks

来自「PostgreSQL 8.2中增加了很多企业用户所需要的功能和性能上的提高,其开」· PGROWLOCKS 代码 · 共 99 行

PGROWLOCKS
99
字号
$PostgreSQL: pgsql/contrib/pgrowlocks/README.pgrowlocks,v 1.1 2006/04/23 01:12:58 ishii Exp $pgrowlocks README			Tatsuo Ishii1. What is pgrowlocks?   pgrowlocks shows row locking information for specified table.   pgrowlocks returns following data type:CREATE TYPE pgrowlocks_type AS (	locked_row TID,		-- row TID	lock_type TEXT,		-- lock type	locker XID,		-- locking XID	multi bool,		-- multi XID?	xids xid[],		-- multi XIDs	pids INTEGER[]		-- locker's process id);  Here is a sample execution of pgrowlocks:test=# SELECT * FROM pgrowlocks('t1'); locked_row | lock_type | locker | multi |   xids    |     pids      ------------+-----------+--------+-------+-----------+---------------      (0,1) | Shared    |     19 | t     | {804,805} | {29066,29068}      (0,2) | Shared    |     19 | t     | {804,805} | {29066,29068}      (0,3) | Exclusive |    804 | f     | {804}     | {29066}      (0,4) | Exclusive |    804 | f     | {804}     | {29066}(4 rows)  locked_row		-- tuple ID(TID) of each locked rows  lock_type		-- "Shared" for shared lock, "Exclusive" for exclusive lock  locker		-- transaction ID of locker (note 1)  multi			-- "t" if locker is a multi transaction, otherwise "f"  xids			-- XIDs of lockers (note 2)  pids			-- process ids of locking backends  note1: if the locker is multi transaction, it represents the multi ID  note2: if the locker is multi, multiple data are shown2. Installing pgrowlocks   Installing pgrowlocks requires PostgreSQL 8.0 or later source tree.      $ cd /usr/local/src/postgresql-8.1/contrib      $ tar xfz /tmp/pgrowlocks-1.0.tar.gz   If you are using PostgreSQL 8.0, you need to modify pgrowlocks source code.   Around line 61, you will see:      #undef MAKERANGEVARFROMNAMELIST_HAS_TWO_ARGS   change this to:      #define MAKERANGEVARFROMNAMELIST_HAS_TWO_ARGS      $ make      $ make install      $ psql -e -f pgrowlocks.sql test3. How to use pgrowlocks   The calling sequence for pgrowlocks is as follows:   CREATE OR REPLACE FUNCTION pgrowlocks(text) RETURNS pgrowlocks_type     AS 'MODULE_PATHNAME', 'pgrowlocks'     LANGUAGE 'c' WITH (isstrict);   The parameter is a name of table. pgrowlocks returns type pgrowlocks_type.   pgrowlocks grab AccessShareLock for the target table and read each   row one by one to get the row locking information. You should   notice that:   1) if the table is exclusive locked by someone else, pgrowlocks      will be blocked.   2) pgrowlocks may show incorrect information if there's a new      lock or a lock is freeed while its execution.   pgrowlocks does not show the contents of locked rows. If you want   to take a look at the row contents at the same time, you could do   something like this:   SELECT * FROM accounts AS a, pgrowlocks('accounts') AS p WHERE p.locked_ row = a.ctid;4. License   pgrowlocks is distribute under (modified) BSD license described in   the source file.5. History   2006/03/21 pgrowlocks version 1.1 released (tested on 8.2 current)   2005/08/22 pgrowlocks version 1.0 released

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?