Mega Code Archive

 
Categories / PostgreSQL / Select Query
 

A verbose explanation of a simpler query, with the VERBOSE keyword

postgres=# postgres=# CREATE TABLE employee ( postgres(#     ID         int, postgres(#     name       varchar(10), postgres(#     salary     real, postgres(#     start_date date, postgres(#     city       varchar(10), postgres(#     region     char(1) postgres(# ); CREATE TABLE postgres=# postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (1,  'Jason', 40420,  '02/01/94', 'New York', 'W'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (2,  'Robert',14420,  '01/02/95', 'Vancouver','N'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (3,  'Celia', 24020,  '12/03/96', 'Toronto',  'W'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (4,  'Linda', 40620,  '11/04/97', 'New York', 'N'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (5,  'David', 80026,  '10/05/98', 'Vancouver','W'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (6,  'James', 70060,  '09/06/99', 'Toronto',  'N'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (7,  'Alison',90620,  '08/07/00', 'New York', 'W'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (8,  'Chris', 26020,  '07/08/01', 'Vancouver','N'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (9,  'Mary',  60020,  '06/09/02', 'Toronto',  'W'); INSERT 0 1 postgres=# postgres=# select * from employee;  id |  name  | salary | start_date |   city    | region ----+--------+--------+------------+-----------+--------   1 | Jason  |  40420 | 1994-02-01 | New York  | W   2 | Robert |  14420 | 1995-01-02 | Vancouver | N   3 | Celia  |  24020 | 1996-12-03 | Toronto   | W   4 | Linda  |  40620 | 1997-11-04 | New York  | N   5 | David  |  80026 | 1998-10-05 | Vancouver | W   6 | James  |  70060 | 1999-09-06 | Toronto   | N   7 | Alison |  90620 | 2000-08-07 | New York  | W   8 | Chris  |  26020 | 2001-07-08 | Vancouver | N   9 | Mary   |  60020 | 2002-06-09 | Toronto   | W (9 rows) postgres=# postgres=# postgres=# postgres=# -- A verbose explanation of a simpler query, with the VERBOSE keyword: postgres=# postgres=# EXPLAIN VERBOSE SELECT * FROM employee;                          QUERY PLAN -------------------------------------------------------------     {SEQSCAN     :startup_cost 0.00     :total_cost 20.30     :plan_rows 1030     :plan_width 45     :targetlist (        {TARGETENTRY        :expr           {VAR           :varno 1           :varattno 1           :vartype 23           :vartypmod -1           :varlevelsup 0           :varnoold 1           :varoattno 1           }        :resno 1        :resname id        :ressortgroupref 0        :resorigtbl 19576        :resorigcol 1        :resjunk false        }        {TARGETENTRY        :expr           {VAR           :varno 1           :varattno 2           :vartype 1043           :vartypmod 14           :varlevelsup 0           :varnoold 1           :varoattno 2           }        :resno 2        :resname name        :ressortgroupref 0        :resorigtbl 19576        :resorigcol 2        :resjunk false        }        {TARGETENTRY        :expr           {VAR           :varno 1           :varattno 3           :vartype 700           :vartypmod -1           :varlevelsup 0           :varnoold 1           :varoattno 3           }        :resno 3        :resname salary        :ressortgroupref 0        :resorigtbl 19576        :resorigcol 3        :resjunk false        }        {TARGETENTRY        :expr           {VAR           :varno 1           :varattno 4           :vartype 1082           :vartypmod -1           :varlevelsup 0           :varnoold 1           :varoattno 4           }        :resno 4        :resname start_date        :ressortgroupref 0        :resorigtbl 19576        :resorigcol 4        :resjunk false        }        {TARGETENTRY        :expr           {VAR           :varno 1           :varattno 5           :vartype 1043           :vartypmod 14           :varlevelsup 0           :varnoold 1           :varoattno 5           }        :resno 5        :resname city        :ressortgroupref 0        :resorigtbl 19576        :resorigcol 5        :resjunk false        }        {TARGETENTRY        :expr           {VAR           :varno 1           :varattno 6           :vartype 1042           :vartypmod 5           :varlevelsup 0           :varnoold 1           :varoattno 6           }        :resno 6        :resname region        :ressortgroupref 0        :resorigtbl 19576        :resorigcol 6        :resjunk false        }     )     :qual <>     :lefttree <>     :righttree <>     :initPlan <>     :extParam (b)     :allParam (b)     :nParamExec 0     :scanrelid 1     }  Seq Scan on employee  (cost=0.00..20.30 rows=1030 width=45) (126 rows) postgres=#