Re: Query Analyzing

Поиск
Список
Период
Сортировка
От Booth, Robert
Тема Re: Query Analyzing
Дата
Msg-id 419D2EB7B461D411A53B00508B69181D0623262B@sdex02.sd.intuit.com
обсуждение исходный текст
Ответ на Query Analyzing  ("Booth, Robert" <Robert_Booth@intuit.com>)
Ответы Re: Query Analyzing  (Manfred Koizar <mkoi-pg@aon.at>)
Re: Query Analyzing  (Manfred Koizar <mkoi-pg@aon.at>)
Список pgsql-general
> that's not easy;  let's try on.  Could you post these two EXPLAIN
> ANALYZE results to the -general?  Just for us to get a feeling ...
Query:
SELECT DISTINCT ALLFORMS.File__no, ALLFORMS.Mod, ALLFORMS.Frm_Wks,
ALLFORMS.ddf_type,
                AANDA.Rev_Date, to_char(AANDA.Prelim_Est, 'MM/DD/YY') AS
prelim_est,
                to_char(AANDA.Prelim_Rec, 'MM/DD/YY') AS prelim_rec,
                to_char(AANDA.Final_Est, 'MM/DD/YY') AS final_est,
                to_char(AANDA.Final_Rec, 'MM/DD/YY') AS final_rec,
                to_char(AANDA.InstrExp, 'MM/DD/YY') AS instrexp,
                to_char(AANDA.Lsr_to_GWood, 'MM/DD/YY') AS lsr_to_gwood,
                to_char(AANDA.Instr_Rec, 'MM/DD/YY') AS instr_rec,
                to_char(AANDA.GWood_Recd, 'MM/DD/YY') AS gwood_recd,
                to_char(aanda.m_w_inst_to_dev, 'MM/DD/YY') AS
m_w_inst_to_dev,
                AANDA.m_w_inst_status,
                to_char(AANDA.M_W_Lsr_To_Dev, 'MM/DD/YY') AS m_w_lsr_to_dev,
                AANDA.M_W_Lsr_Status, to_char(AANDA.Lsr_Sent, 'MM/DD/YY') AS
lsr_sent,
                to_char(AANDA.M_W_Lsr_App, 'MM/DD/YY') AS m_w_lsr_app,
                to_char(AANDA.InstPrelimExp, 'MM/DD/YY') AS instprelimexp,
                to_char(AANDA.InstPrelimRec, 'MM/DD/YY') AS instprelimrec,
                MODINFO.Team_Leader, MODINFO.Forms_Lead, MODINFO.Developer,
AANDA.plus,
                MODINFO.IDGAandAPOC, MODINFO.IDGAandALead,
MODINFO.LacerteLead,
                grdb.teamlead AS grdblacertelead, MODINFO.LacerteResearcher,
                grdb.developer AS grdblacertedeveloper, MODINFO.EFLead,
MODINFO.EFDeveloper,
                MODINFO.NGILead, MODINFO.NGIDeveloper,
                to_char(AANDA.LsctoDev, 'MM/DD/YY') AS lsctodev,
AANDA.LscStatus,
                to_char(AANDA.LscSent, 'MM/DD/YY') AS lscsent,
                to_char(AANDA.LscApp, 'MM/DD/YY') AS lscapp,
                grdb.busunit || grdb.state AS newlacertemodequiv,
                ALLFORMS.OSfirstchk, MODINFO.Module, ALLFORMS.Scannablechk,
                CASE WHEN comchk = true THEN 'C'
                     ELSE ''
                     END AS CT,
                ALLFORMS.Inactive, aanda_status_types.code,
                modinfo.proseries_actual_date, modinfo.turbotax_actual_date,
                modinfo.webturbotax_actual_date,
modinfo.lacerte_actual_date,
                tl.Extension as tl_extension, dev.Extension as
dev_extension,
                ll.Extension as ll_extension, lr.Extension as lr_extension,
                grdb.lacertefilename AS lacertename, grdb.lacerteformname,
                gd.extension AS grdblacertedeveloperextension,
                gl.extension AS grdblacerteleadextension
  FROM ((((((((MODINFO INNER JOIN
       (ALLFORMS INNER JOIN AANDA ON ALLFORMS.File__no = AANDA.File__no)
       ON MODINFO.Module = ALLFORMS.Mod) LEFT JOIN aanda_status_types
       ON AANDA.aanda_status_type_id =
aanda_status_types.aanda_status_type_id)
       LEFT JOIN Users AS tl ON MODINFO.Team_Leader = tl.name)
       LEFT JOIN Users AS dev ON MODINFO.Developer = dev.name)
       LEFT JOIN Users AS ll ON MODINFO.LacerteLead = ll.name)
       LEFT JOIN Users AS lr ON MODINFO.LacerteResearcher = lr.name)
       LEFT JOIN grdb ON allforms.file__no = grdb.intuitfilename)
       LEFT JOIN Users AS gd ON grdb.developer = gd.name)
       LEFT JOIN Users AS gl ON grdb.teamlead = gl.name
 WHERE ALLFORMS.Inactive Is Null;

Explain Analyze:
Unique  (cost=3510.89..4004.48 rows=340 width=683) (actual
time=20608.43..21148.51 rows=5721 loops=1)
  ->  Sort  (cost=3510.89..3510.89 rows=3404 width=683) (actual
time=20608.41..20688.00 rows=5721 loops=1)
        ->  Hash Join  (cost=852.50..2693.25 rows=3404 width=683) (actual
time=1607.52..18045.90 rows=5721 loops=1)
              ->  Hash Join  (cost=843.99..2625.17 rows=3404 width=657)
(actualtime=1594.90..14424.21 rows=5721 loops=1)
                    ->  Hash Join  (cost=835.47..2557.08 rows=3404
width=631) (actual time=1583.07..11301.51 rows=5721 loops=1)
                          ->  Hash Join  (cost=609.05..1418.36 rows=3404
width=556) (actual time=1033.09..7687.77 rows=2983 loops=1)
                                ->  Hash Join  (cost=600.54..1350.27
rows=3404 width=530) (actual time=1021.56..6627.42 rows=2983 loops=1)
                                      ->  Hash Join  (cost=592.02..1282.19
rows=3404 width=504) (actual time=1010.18..5674.81 rows=2983 loops=1)
                                            ->  Hash Join
(cost=583.51..1214.10 rows=3404 width=478) (actual time=999.13..4811.00
rows=2983 loops=1)
                                                  ->  Hash Join
(cost=575.00..1146.02 rows=3404 width=452) (actual time=987.95..4034.51
rows=2983 loops=1)
                                                        ->  Hash Join
(cost=573.90..1127.80 rows=3404 width=443) (actual time=986.92..3334.55
rows=2983 loops=1)
                                                              ->  Hash Join
(cost=524.29..993.09 rows=3404 width=233) (actual time=951.76..2567.33
rows=2985 loops=1)
                                                                    ->  Seq
Scan on aanda  (cost=0.00..112.30 rows=3530 width=180) (actual
time=0.20..301.30 rows=3530 loops=1)
                                                                    ->  Hash
(cost=422.64..422.64 rows=8259 width=53) (actual time=914.46..914.46 rows=0
loops=1)
                                                                          ->
Seq Scan on allforms  (cost=0.00..422.64 rows=8259 width=53) (actual
time=0.26..725.04 rows=8346 loops=1)
                                                              ->  Hash
(cost=48.69..48.69 rows=369 width=210) (actual time=34.66..34.66 rows=0
loops=1)
                                                                    ->  Seq
Scan on modinfo  (cost=0.00..48.69 rows=369 width=210) (actual
time=0.19..28.17 rows=369 loops=1)
                                                        ->  Hash
(cost=1.08..1.08 rows=8 width=9) (actual time=0.50..0.50 rows=0 loops=1)
                                                              ->  Seq Scan
on aanda_status_types  (cost=0.00..1.08 rows=8 width=9) (actual
time=0.23..0.40 rows=8 loops=1)
                                                  ->  Hash  (cost=7.81..7.81
rows=281 width=26) (actual time=10.62..10.62 rows=0 loops=1)
                                                        ->  Seq Scan on
users tl  (cost=0.00..7.81 rows=281 width=26) (actual time=0.05..6.83
rows=281 loops=1)
                                            ->  Hash  (cost=7.81..7.81
rows=281width=26) (actual time=10.47..10.47 rows=0 loops=1)
                                                  ->  Seq Scan on users dev
(cost=0.00..7.81 rows=281 width=26) (actual time=0.05..6.59 rows=281
loops=1)
                                      ->  Hash  (cost=7.81..7.81 rows=281
width=26) (actual time=10.67..10.67 rows=0 loops=1)
                                            ->  Seq Scan on users ll
(cost=0.00..7.81 rows=281 width=26) (actual time=0.05..6.75 rows=281
loops=1)
                                ->  Hash  (cost=7.81..7.81 rows=281
width=26) (actual time=10.86..10.86 rows=0 loops=1)
                                      ->  Seq Scan on users lr
(cost=0.00..7.81 rows=281 width=26) (actual time=0.06..6.85 rows=281
loops=1)
                          ->  Hash  (cost=145.14..145.14 rows=5314 width=75)
(actual time=509.09..509.09 rows=0 loops=1)
                                ->  Seq Scan on grdb  (cost=0.00..145.14
rows=5314 width=75) (actual time=0.17..317.69 rows=5314 loops=1)
                    ->  Hash  (cost=7.81..7.81 rows=281 width=26) (actual
time=10.96..10.96 rows=0 loops=1)
                          ->  Seq Scan on users gd  (cost=0.00..7.81
rows=281 width=26) (actual time=0.05..6.99 rows=281 loops=1)
              ->  Hash  (cost=7.81..7.81 rows=281 width=26) (actual
time=11.06..11.06 rows=0 loops=1)
                    ->  Seq Scan on users gl  (cost=0.00..7.81 rows=281
width=26) (actual time=0.14..7.09 rows=281 loops=1)
Total runtime: 21238.31 msec

Query - Without Users Table:
SELECT DISTINCT ALLFORMS.File__no, ALLFORMS.Mod, ALLFORMS.Frm_Wks,
ALLFORMS.ddf_type,
                AANDA.Rev_Date, to_char(AANDA.Prelim_Est, 'MM/DD/YY') AS
prelim_est,
                to_char(AANDA.Prelim_Rec, 'MM/DD/YY') AS prelim_rec,
                to_char(AANDA.Final_Est, 'MM/DD/YY') AS final_est,
                to_char(AANDA.Final_Rec, 'MM/DD/YY') AS final_rec,
                to_char(AANDA.InstrExp, 'MM/DD/YY') AS instrexp,
                to_char(AANDA.Lsr_to_GWood, 'MM/DD/YY') AS lsr_to_gwood,
                to_char(AANDA.Instr_Rec, 'MM/DD/YY') AS instr_rec,
                to_char(AANDA.GWood_Recd, 'MM/DD/YY') AS gwood_recd,
                to_char(aanda.m_w_inst_to_dev, 'MM/DD/YY') AS
m_w_inst_to_dev,
                AANDA.m_w_inst_status,
                to_char(AANDA.M_W_Lsr_To_Dev, 'MM/DD/YY') AS m_w_lsr_to_dev,
                AANDA.M_W_Lsr_Status, to_char(AANDA.Lsr_Sent, 'MM/DD/YY') AS
lsr_sent,
                to_char(AANDA.M_W_Lsr_App, 'MM/DD/YY') AS m_w_lsr_app,
                to_char(AANDA.InstPrelimExp, 'MM/DD/YY') AS instprelimexp,
                to_char(AANDA.InstPrelimRec, 'MM/DD/YY') AS instprelimrec,
                MODINFO.Team_Leader, MODINFO.Forms_Lead, MODINFO.Developer,
AANDA.plus,
                MODINFO.IDGAandAPOC, MODINFO.IDGAandALead,
MODINFO.LacerteLead,
                grdb.teamlead AS grdblacertelead, MODINFO.LacerteResearcher,
                grdb.developer AS grdblacertedeveloper, MODINFO.EFLead,
MODINFO.EFDeveloper,
                MODINFO.NGILead, MODINFO.NGIDeveloper,
                to_char(AANDA.LsctoDev, 'MM/DD/YY') AS lsctodev,
AANDA.LscStatus,
                to_char(AANDA.LscSent, 'MM/DD/YY') AS lscsent,
                to_char(AANDA.LscApp, 'MM/DD/YY') AS lscapp,
                grdb.busunit || grdb.state AS newlacertemodequiv,
                ALLFORMS.OSfirstchk, MODINFO.Module, ALLFORMS.Scannablechk,
                CASE WHEN comchk = true THEN 'C'
                     ELSE ''
                     END AS CT,
                ALLFORMS.Inactive, aanda_status_types.code,
                modinfo.proseries_actual_date, modinfo.turbotax_actual_date,
                modinfo.webturbotax_actual_date,
modinfo.lacerte_actual_date,
                grdb.lacertefilename AS lacertename, grdb.lacerteformname
  FROM ((MODINFO INNER JOIN
       (ALLFORMS INNER JOIN AANDA ON ALLFORMS.File__no = AANDA.File__no)
       ON MODINFO.Module = ALLFORMS.Mod) LEFT JOIN aanda_status_types
       ON AANDA.aanda_status_type_id =
aanda_status_types.aanda_status_type_id)
       LEFT JOIN grdb ON allforms.file__no = grdb.intuitfilename
 WHERE ALLFORMS.Inactive Is Null;

Explain Analyze:
Unique  (cost=2870.62..3313.15 rows=340 width=527) (actual
time=9864.94..10209.69 rows=5721 loops=1)
  ->  Sort  (cost=2870.62..2870.62 rows=3404 width=527) (actual
time=9864.92..9938.36 rows=5721 loops=1)
        ->  Hash Join  (cost=801.42..2198.75 rows=3404 width=527) (actual
time=1475.11..7707.23 rows=5721 loops=1)
              ->  Hash Join  (cost=575.00..1146.02 rows=3404 width=452)
(actualtime=982.24..4017.73 rows=2983 loops=1)
                    ->  Hash Join  (cost=573.90..1127.80 rows=3404
width=443) (actual time=981.46..3333.14 rows=2983 loops=1)
                          ->  Hash Join  (cost=524.29..993.09 rows=3404
width=233) (actual time=952.03..2584.97 rows=2985 loops=1)
                                ->  Seq Scan on aanda  (cost=0.00..112.30
rows=3530 width=180) (actual time=0.23..322.69 rows=3530 loops=1)
                                ->  Hash  (cost=422.64..422.64 rows=8259
width=53) (actual time=910.08..910.08 rows=0 loops=1)
                                      ->  Seq Scan on allforms
(cost=0.00..422.64 rows=8259 width=53) (actual time=0.15..738.43 rows=8346
loops=1)
                          ->  Hash  (cost=48.69..48.69 rows=369 width=210)
(actual time=29.13..29.13 rows=0 loops=1)
                                ->  Seq Scan on modinfo  (cost=0.00..48.69
rows=369 width=210) (actual time=0.11..23.78 rows=369 loops=1)
                    ->  Hash  (cost=1.08..1.08 rows=8 width=9) (actual
time=0.42..0.42 rows=0 loops=1)
                          ->  Seq Scan on aanda_status_types
(cost=0.00..1.08 rows=8 width=9) (actual time=0.15..0.32 rows=8 loops=1)
              ->  Hash  (cost=145.14..145.14 rows=5314 width=75) (actual
time=439.53..439.53 rows=0 loops=1)
                    ->  Seq Scan on grdb  (cost=0.00..145.14 rows=5314
width=75) (actual time=0.09..292.42 rows=5314 loops=1)
Total runtime: 10273.98 msec

> Datatypes?  Please post \d tabelname for the tables involved.
I should warn you that I didn't design these tables, and cannot currently
change them.

goforms=> \d modinfo;
                              Table "modinfo"
         Column          |            Type             |     Modifiers
-------------------------+-----------------------------+-------------------
 module                  | character varying(4)        |
 lacertemodequiv         | character varying(4)        |
 forms_lead              | character varying(20)       |
 idgaandalead            | character varying(20)       |
 idgaandapoc             | character varying(20)       |
 team_leader             | character varying(20)       |
 developer               | character varying(20)       |
 taxqa                   | character varying(20)       |
 lacertelead             | character varying(20)       |
 lacerteresearcher       | character varying(20)       |
 lacerteqa               | character varying(20)       |
 eflead                  | character varying(20)       |
 efdeveloper             | character varying(20)       |
 ngilead                 | character varying(20)       |
 ngideveloper            | character varying(20)       |
 blank_second            | character varying(20)       |
 letter_of_intent_flag   | character varying(1)        |
 letterofintentchk       | smallint                    |
 loi_sent                | timestamp without time zone |
 guidelines_flag         | character varying(1)        |
 guidelineschk           | smallint                    |
 guidelines_recd         | timestamp without time zone |
 scannable_forms_flag    | character varying(1)        |
 scannableformschk       | smallint                    |
 dropout_ink_forms_flag  | character varying(1)        |
 dropoutinkformschk      | smallint                    |
 order_form_flag         | character varying(1)        |
 orderformchk            | smallint                    |
 order_form_recd         | timestamp without time zone |
 form_request_sent       | timestamp without time zone |
 id_code_reqd_flag       | character varying(1)        |
 idcodereqdchk           | smallint                    |
 id_code                 | character varying(30)       |
 fontandstyle            | character varying(30)       |
 previous_code_okay_flag | character varying(1)        |
 previouscodeokaychk     | smallint                    |
 penny_lines_reqd_flag   | character varying(1)        |
 pennylinesreqdchk       | smallint                    |
 decimals_okay_flag      | character varying(1)        |
 decimalsokaychk         | smallint                    |
 zerosreqdchk            | smallint                    |
 accept_dotm_flag        | character varying(1)        |
 accept_grafx_flag       | character varying(1)        |
 notes                   | text                        |
 state                   | character varying(15)       |
 faxondemand             | character varying(15)       |
 bbs                     | character varying(15)       |
 scnspecschk             | smallint                    |
 scngridchk              | smallint                    |
 scnscanbandchk          | smallint                    |
 scnchkdigchk            | smallint                    |
 scnvarfldinfo           | character varying(255)      |
 scndocidchk             | smallint                    |
 scndocidinfo            | character varying(24)       |
 scndocidspace           | character varying(24)       |
 scnbarcodechk           | smallint                    |
 scnbarcodeinfo          | character varying(24)       |
 scnbarcodespace         | character varying(24)       |
 scnpatchchk             | smallint                    |
 scnpatchinfo            | character varying(24)       |
 scnpatchspace           | character varying(24)       |
 scnscanlinechk          | smallint                    |
 scnscanlineinfo         | character varying(24)       |
 scnscanlinespace        | character varying(24)       |
 scnseconddbarcodechk    | smallint                    |
 scnseconddbarcodeinfo   | character varying(24)       |
 scnseconddbarcodespace  | character varying(24)       |
 efannualapply           | boolean                     | default 'f'::bool
 efloireqd               | boolean                     | default 'f'::bool
 efnewapplyforchange     | boolean                     | default 'f'::bool
 efloisent               | timestamp without time zone |
 ef_application_sent     | timestamp without time zone |
 effedeerecd             | timestamp without time zone |
 efsteerecd              | timestamp without time zone |
 efpasswordsrecd         | timestamp without time zone |
 efackpappsent           | timestamp without time zone |
 efackppassconfirmed     | timestamp without time zone |
 efackpcontact           | character varying(24)       |
 efirscenter             | character varying(24)       |
 eftransirscenter        | character varying(24)       |
 efdirectdebit           | boolean                     | default 'f'::bool
 efdirectdep             | boolean                     | default 'f'::bool
 efccardpay              | boolean                     | default 'f'::bool
 efzerodue               | boolean                     | default 'f'::bool
 efperpin                | boolean                     | default 'f'::bool
 efpropin                | boolean                     | default 'f'::bool
 efdirectfiling          | boolean                     | default 'f'::bool
 efreject                | boolean                     | default 'f'::bool
 eflscefsupport          | boolean                     | default 'f'::bool
 efnrsupport             | boolean                     | default 'f'::bool
 efpysupport             | boolean                     | default 'f'::bool
 efamendedsupport        | boolean                     | default 'f'::bool
 effedconsent            | boolean                     | default 'f'::bool
 efstconsent             | boolean                     | default 'f'::bool
 efpatsopen              | timestamp without time zone |
 efpatsclosed            | timestamp without time zone |
 efliveopen              | timestamp without time zone |
 efliveclosed            | timestamp without time zone |
 efnotes                 | text                        |
 effedapp                | boolean                     | default 'f'::bool
 efstateapp              | boolean                     | default 'f'::bool
 efefinetins             | boolean                     | default 'f'::bool
 efindependent           | boolean                     | default 'f'::bool
 efjelf                  | boolean                     | default 'f'::bool
 efackprovider           | character varying(10)       |
 efmbuseridtest          | timestamp without time zone |
 efmbuseridlive          | timestamp without time zone |
 efackpasstest           | timestamp without time zone |
 efackpasslive           | timestamp without time zone |
 efsoftwareidrecq        | boolean                     | default 'f'::bool
 efextensionsupport      | boolean                     | default 'f'::bool
 efforeignsupport        | boolean                     | default 'f'::bool
 proseries_actual_date   | timestamp without time zone |
 turbotax_actual_date    | timestamp without time zone |
 webturbotax_actual_date | timestamp without time zone |
 lacerte_actual_date     | timestamp without time zone |
Indexes: modinfo_module
Unique keys: modinfo_pk

goforms=> \d allforms
                         Table "allforms"
      Column       |           Type           |     Modifiers
-------------------+--------------------------+-------------------
 file__no          | character varying(8)     | not null
 mod               | character varying(4)     |
 frm_id            | character varying(3)     |
 inactive          | character varying(8)     |
 frm_wks           | character varying(18)    |
 pg_first          | character varying(2)     |
 pg_second         | character varying(2)     |
 filepgs           | smallint                 |
 totpgs            | character varying(2)     |
 title             | character varying(41)    |
 mainform          | boolean                  | default 'f'::bool
 scannablechk      | boolean                  | default 'f'::bool
 ddf_type          | character varying(3)     |
 seconddchk        | boolean                  | default 'f'::bool
 i                 | character varying(5)     |
 c                 | character varying(5)     |
 s                 | character varying(5)     |
 p                 | character varying(5)     |
 f                 | character varying(5)     |
 o                 | character varying(5)     |
 x                 | character varying(5)     |
 first             | character varying(5)     |
 second            | character varying(5)     |
 third             | character varying(5)     |
 fourth            | character varying(5)     |
 fifth             | character varying(5)     |
 starspecial       | character varying(5)     |
 dfd               | character varying(1)     |
 dog               | character varying(1)     |
 atb               | character varying(1)     |
 dst               | character varying(1)     |
 stfirstchk        | boolean                  | default 'f'::bool
 stsecondchk       | boolean                  | default 'f'::bool
 stthirdchk        | boolean                  | default 'f'::bool
 stfourthchk       | boolean                  | default 'f'::bool
 stfifthchk        | boolean                  | default 'f'::bool
 st6chk            | boolean                  | default 'f'::bool
 atg               | character varying(1)     |
 afd               | character varying(1)     |
 abf               | character varying(1)     |
 abs               | character varying(1)     |
 fedfirstchk       | boolean                  | default 'f'::bool
 frmsfirstchk      | boolean                  | default 'f'::bool
 frmssecondchk     | boolean                  | default 'f'::bool
 frmsthirdchk      | boolean                  | default 'f'::bool
 frmsfourthchk     | boolean                  | default 'f'::bool
 busfirstchk       | boolean                  | default 'f'::bool
 bussecondchk      | boolean                  | default 'f'::bool
 busthirdchk       | boolean                  | default 'f'::bool
 busfourthchk      | boolean                  | default 'f'::bool
 busfifthchk       | boolean                  | default 'f'::bool
 bus6chk           | boolean                  | default 'f'::bool
 osfirstchk        | boolean                  | default 'f'::bool
 ossecondchk       | boolean                  | default 'f'::bool
 osthirdchk        | boolean                  | default 'f'::bool
 osfourthchk       | boolean                  | default 'f'::bool
 osfifthchk        | boolean                  | default 'f'::bool
 os6chk            | boolean                  | default 'f'::bool
 ngifirstchk       | boolean                  | default 'f'::bool
 ngisecondchk      | boolean                  | default 'f'::bool
 effirstchk        | boolean                  | default 'f'::bool
 ofl               | character varying(1)     |
 aaa               | character varying(1)     |
 bbb               | character varying(1)     |
 fwchk             | boolean                  | default 'f'::bool
 ptchk             | boolean                  | default 'f'::bool
 aechk             | boolean                  | default 'f'::bool
 ltchk             | boolean                  | default 'f'::bool
 halchk            | boolean                  | default 'f'::bool
 comchk            | boolean                  | default 'f'::bool
 sim_to            | character varying(28)    |
 notes             | text                     |
 fedp              | character varying(1)     |
 fwbuild           | text                     |
 ptbuild           | text                     |
 ltbuild           | text                     |
 status            | character varying(20)    |
 lscapprovalstatus | character varying(20)    |
 change_time       | timestamp with time zone |
Indexes: allforms_file__no_idx,
         allforms_frm_wks_idx,
         allforms_mod_idx,
         allforms_title_idx
Primary key: allforms_pkey

goforms=> \d aanda
                             Table "aanda"
        Column        |            Type             |     Modifiers
----------------------+-----------------------------+-------------------
 file__no             | character varying(8)        |
 rev_date             | character varying(8)        |
 prelim_est           | timestamp without time zone |
 firstst_prelim       | timestamp without time zone |
 prelim_rec           | timestamp without time zone |
 final_est            | timestamp without time zone |
 firstst_final        | timestamp without time zone |
 final_rec            | timestamp without time zone |
 instprelimexp        | timestamp without time zone |
 firststinstprelim    | timestamp without time zone |
 instprelimrec        | timestamp without time zone |
 instrexp             | timestamp without time zone |
 firststinstr         | timestamp without time zone |
 instr_rec            | timestamp without time zone |
 m_w_lsr_to_dev       | timestamp without time zone |
 m_w_lsr_status       | character varying(2)        |
 m_w_inst_to_dev      | timestamp without time zone |
 m_w_inst_status      | character varying(2)        |
 lsr_sent             | timestamp without time zone |
 m_w_lsr_app          | timestamp without time zone |
 lsr_app_by           | character varying(20)       |
 lsr_writ_verb        | character varying(7)        |
 lsr_app_w_c          | character varying(1)        |
 lsr_resub_flag       | character varying(1)        |
 lsr_to_gwood         | timestamp without time zone |
 lsr_to_fsyst         | timestamp without time zone |
 gwood_recd           | timestamp without time zone |
 fsyst_recd           | timestamp without time zone |
 notes                | text                        |
 plus                 | character varying(2)        |
 lacerte              | boolean                     | default 'f'::bool
 re_submit            | character varying(1)        |
 lsctodev             | timestamp without time zone |
 lscstatus            | character varying(2)        |
 lscsent              | timestamp without time zone |
 lscapp               | timestamp without time zone |
 lscappby             | character varying(20)       |
 lscwrit_verb         | character varying(7)        |
 lscappw_c            | character varying(1)        |
 lscresub_flag        | character varying(1)        |
 lscre_submit_flag    | character varying(1)        |
 aanda_status_type_id | integer                     |
Indexes: aanda_file__no_idx,
         aanda_lateforms_idx1,
         aanda_lateforms_idx2,
         readytosend_idx
Unique keys: aanda_pk

goforms=> \d aanda_status_types
                                                  Table "aanda_status_types"
        Column        |         Type          |
  Modifiers
----------------------+-----------------------+-----------------------------
--------------------------------------------------
 aanda_status_type_id | integer               | not null default
nextval('aanda_status_types_aanda_status_type_id_Seq'::text)
 code                 | character varying(2)  |
 description          | character varying(50) |
Primary key: aanda_status_types_pkey

goforms=> \d grdb
                        Table "grdb"
     Column      |         Type          |     Modifiers
-----------------+-----------------------+-------------------
 lacertefilename | character varying(12) | not null
 lacerteformname | character varying(30) |
 state           | character varying(2)  |
 busunit         | character varying(1)  |
 formid          | character varying(4)  |
 intuitfilename  | character varying(12) |
 editthisfile    | boolean               | default 'f'::bool
 teamlead        | character varying(20) |
 developer       | character varying(20) |
Indexes: grdb_intuitfilename_idx
Primary key: grdb_pkey

goforms=> \d users
                       Table "users"
    Column     |         Type          |     Modifiers
---------------+-----------------------+-------------------
 name          | character varying(30) | not null
 e_mailaddress | character varying(50) |
 department    | character varying(24) |
 title         | character varying(30) |
 extension     | character varying(15) |
 password      | character varying(10) |
 active        | boolean               | default 'f'::bool
 getmail       | boolean               | default 'f'::bool
Primary key: users_pkey

Again if there is somewhere I can go to read about explain plans let me know
I'd like to figure it out as opposed to getting the answers handed to me.

Rob




В списке pgsql-general по дате отправления:

Предыдущее
От: Jan Wieck
Дата:
Сообщение: Re: I am being interviewed by OReilly
Следующее
От: Stephan Szabo
Дата:
Сообщение: Re: PostgreSQL doesn't use indexes even is enable_seqscan