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 по дате отправления:
Следующее
От: Stephan SzaboДата:
Сообщение: Re: PostgreSQL doesn't use indexes even is enable_seqscan