PG Basic Commands

PG Basic Commands

==============================================================================================================

Create a User

postgres=# create user user_name with encrypted password ‘mypassword’;

CREATE USER s2user WITH PASSWORD '***************';
CREATE USER s2user WITH PASSWORD '***************' VALID UNTIL 2040-12-01;CREATE USER s2user SUPERUSER LOGIN PASSWORD '12345';CREATE USER s2user SUPERUSER LOGIN PASSWORD '12345';
postgres=# grant all privileges on database sample_db to user_name;

==============================================================================================================

Insert a huge Data in a Table:

 —Create table and Insert data 

CREATE TABLE COMPANY(   

   NAME           CHAR(2000) ,

   AGE            INT     NOT NULL,

   ADDRESS        CHAR(2000),

   SALARY         REAL,

   JOIN_DATE   DATE

);

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (1, ‘Paul’, 32, ‘California’, 20000.0,’2001-07-13′);

 do $$

declare 

   counter integer := 0;

begin

   while counter < 5000 loop

      raise notice ‘Counter %’, counter;

  counter := counter + 1;

  insert into COMPANY(name,age)

  select ‘Abhishek Yadav’, 100;

   end loop;

end$$;

==============================================================================================================

Running/Active SQL

acweb=# select datname, usename , state backendtype , query from pg_stat_activity;

 datname | usename  | backendtype |                                   query

———+———-+————-+—————————————————————————-

         |          |             |

         | postgres |             |

 acweb   | myuser   | active      | select datname, usename , state backendtype , query from pg_stat_activity;

         |          |             |

         |          |             |

select datname, usename , state backendtype,backend_type , query from pg_stat_activity where backend_type = ‘client backend’;

 datname | usename  | backendtype |  backend_type  |                                                             query

———+———-+————-+—————-+—————————————————————————————————————————-

 i3      | postgres | idle        | client backend | select * from i3_emp;

 acweb   | myuser   | active      | client backend | select datname, usename , state backendtype,backend_type , query from pg_stat_activity where backend_type = ‘client backend

‘;

(2 rows)

==============================================================================================================

To check if a query is waiting for another query:

SELECT datname, usename, wait_event_type, wait_event, backend_type, query

FROM pg_stat_activity

WHERE wait_event_type IS NOT NULL

AND wait_event_type NOT IN (‘Activity’, ‘Client’);

First Query Window

i3=# begin;

BEGIN

i3=*# update i3_emp set id=6 where id=2;

UPDATE 2

i3=*#

Second Query Window

i3=# update i3_emp set id=7 where id=2;

/*This query will keep executing*/

Third Query Window. Check the query status.

postgres=# SELECT datname, usename, wait_event_type, wait_event, backend_type, query

FROM pg_stat_activity

WHERE wait_event_type IS NOT NULL

AND wait_event_type NOT IN (‘Activity’, ‘Client’);

 datname | usename | wait_event_type |  wait_event   |  backend_type  |               query

———+———+—————–+—————+—————-+————————————

 i3      | myuser  | Lock            | transactionid | client backend | update i3_emp set id=7 where id=2;

(1 row)

==============================================================================================================

Kill a  query pID:

pg_cancel_backend(pid)

EXAMPLE

–Identify PID of the SQL.

postgres=# select pid,client_hostname,usename,query from pg_stat_activity where state=’active’;

  pid   | client_hostname | usename  |                                        query

——–+—————–+———-+————————————————————————————–

 117810 |                 | postgres | select pid,client_hostname,usename,query from pg_stat_activity where state=’active’;

 116992 |                 | myuser   | update i3_emp set id=7 where id=2;

SELECT pg_cancel_backend(<pid ofthe process>)

postgres=# SELECT pg_cancel_backend(116992);

 pg_cancel_backend

——————-

 t

(1 row)

i3=# update i3_emp set id=7 where id=2;

ERROR:  canceling statement due to user request

CONTEXT:  while updating tuple (0,2) in relation “i3_emp”

i3=#

1

==============================================================================================================

Knowing whether anybody is using a specific table

CREATE TEMPORARY TABLE tmp_stat_user_tables AS

SELECT * FROM pg_stat_user_tables;

SELECT * FROM pg_stat_user_tables n

 JOIN tmp_stat_user_tables t

 ON n.relid=t.relid

 AND (n.seq_scan,n.idx_scan,n.n_tup_ins,n.n_tup_upd,n.n_tup_del)

 <> (t.seq_scan,t.idx_scan,t.n_tup_ins,t.n_tup_upd,t.n_tup_del);

==============================================================================================================

Usage of disk space by temporary data

select current_setting(‘temp_tablespaces’);

 current_setting

—————–


Posted

in

,

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *