Utility Operations improvement in PostgreSQL 9.1
1. Transaction-level advisory locks:    PostgreSQL provides a means for creating locks that have application-defined meanings. These are called advisory locks, because the system does not enforce their use — it is up to the application to use them correctly.    Till 9.0, postgreSQL had only Session level locks. Now, in PostgreSQL 9.1, we have transaction level advisory lock. Some examples are given below:  BEGIN;  -- grabbing txn locks multiple times  SELECT         pg_advisory_xact_lock(1), pg_advisory_xact_lock(1),         pg_advisory_xact_lock_shared(2), pg_advisory_xact_lock_shared(2),         pg_advisory_xact_lock(1, 1), pg_advisory_xact_lock(1, 1),         pg_advisory_xact_lock_shared(2, 2), pg_advisory_xact_lock_shared(2, 2);  SELECT locktype, classid, objid, objsubid, mode, granted         FROM pg_locks WHERE locktype = 'advisory'         ORDER BY classid, objid, objsubid;  COMMIT;  Advantage  of Advisory lock are given below:  1. Advisory locks are faster  2. It avoid ...