explain.depesz.com

PostgreSQL's explain analyze made readable

Result: wwCg

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 0.000 ↓ 0.0

HashAggregate (cost=4,672,985.87..4,673,099.77 rows=11,390 width=31) (actual rows= loops=)

  • Output: nm.wtsemail, ca.city
2. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.00..4,672,928.92 rows=11,390 width=31) (actual rows= loops=)

  • Output: nm.wtsemail, ca.city
3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..4,667,759.53 rows=11,390 width=31) (actual rows= loops=)

  • Output: nm.wtsemail, c.id
4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..4,657,791.55 rows=11,390 width=12) (actual rows= loops=)

  • Output: nz.wtsclientid, c.id
5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..4,631,245.42 rows=26,414 width=12) (actual rows= loops=)

  • Output: nz.wtsclientid, sc.btx_customer_id
6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..4,611,283.70 rows=26,414 width=8) (actual rows= loops=)

  • Output: nz.wtstill, nz.wtsclientid
7. 0.000 0.000 ↓ 0.0

Seq Scan on public.seatinfo s (cost=0.00..4,257,653.17 rows=96,213 width=4) (actual rows= loops=)

  • Output: s.wtstseq, s.wtsseatitem, s.wtsbundle, s.wtsbundleitem, s.wtsseatoffset, s.wtsblock, s.wtsrow, s.wtsseat, s.wtsnumblock, s.wtsnumrow, s.wtsopenflag, s.wtsstgross, s.wtsstnet, s.wtscnscd, s.wtscnsidx, s.wtsstaccessgp, s.wtselevatorflag, s.wtsstfct, s.wtsstpricelevel, s.wtsstsubfct, s.wtsseatblob, s.wtsstdescidx, s.wtscnsreas, s.wtsststatus, s.wtsrprseq, s.wtsqty, s.wtsbarcode, s.wtsattendid, s.wtsverifiedflag, s.wtsextbarcodeid, s.wtscustomid
  • Filter: (s.wtscnscd = ANY ('{AQ,FO,HH}'::bpchar[]))
8. 0.000 0.000 ↓ 0.0

Index Scan using "PKWTSTSEQ" on public.nzrecs nz (cost=0.00..3.67 rows=1 width=12) (actual rows= loops=)

  • Output: nz.wtstseq, nz.wtsnzblob, nz.wtsevent, nz.wtsperf, nz.wtspaymeth, nz.wtspayno, nz.wtstrxtm, nz.wtscpu, nz.wtsuser, nz.wtstill, nz.wtstillseq, nz.wtsxtill, nz.wtsxtillseq, nz.wtsnmsort, nz.wtsclientid, nz.wtsxtseq, nz.wtsiscanceled, nz.wtsispaid, nz.wtstranstp, nz.wtstranssubtp, nz.wtstranssltp, nz.wtsiscredit, nz.wtsmember, nz.wtsseascode, nz.wtspayamt, nz.wtsprtuser, nz.wtsprtcpu, nz.wtsbatch, nz.wtssecret, nz.wtstktp, nz.wtsseasseq, nz.wtsmemberflag, nz.wtsptrexptm, nz.wtsfunc, nz.wtssfunc, nz.wtsprtmeth, nz.wtsprtstatus, nz.wtsccstart, nz.wtsnumitems, nz.wtsitembundles, nz.wtsitemgross, nz.wtsitemnet, nz.wtstransdiscounts, nz.wtstransfees, nz.wtsgbbits, nz.wtsspaymeth, nz.wtsprvers, nz.wtsreqdeldt, nz.wtsrespcds, nz.wtsretloc, nz.wtspostcd, nz.wtstotalamount, nz.wtsisrenewal, nz.wtsrenewdiscount, nz.wtsrenewdiscountreason, nz.wtsrenewaccessgroup, nz.wtsrenewcardcat, nz.wtsrenewhardcardtype, nz.wtsrenewstatus, nz.wtsrenewpaytype, nz.wtsrenewpaysubtype, nz.wtsrenewcardexpire, nz.wtsauth, nz.wtsnexpr, nz.wtsisconsideredpaid, nz.wtsposteddttm, nz.wtsnzaddblob, nz.wtsnauth, nz.wtsticketstocktype
  • Index Cond: (nz.wtstseq = s.wtstseq)
  • Filter: (nz.wtstrxtm >= '2015-01-01 00:00:00+02'::abstime)
9. 0.000 0.000 ↓ 0.0

Index Scan using shopping_cart_wts_shopping_id_idx on btx.shopping_cart sc (cost=0.00..0.75 rows=1 width=12) (actual rows= loops=)

  • Output: sc.wts_shopping_id, sc.btx_customer_id
  • Index Cond: (sc.wts_shopping_id = nz.wtstill)
10. 0.000 0.000 ↓ 0.0

Index Scan using customer_pkey on btx.customer c (cost=0.00..1.00 rows=1 width=8) (actual rows= loops=)

  • Output: c.id, c.fname, c.lname, c.home_phone, c.work_phone, c.mobile_phone, c.birthdate, c.title, c.primcontact, c.confirmsms, c.wantsalesinfo, c.company, c.tax_office, c.tax_number, c.intl, c.tckn, c.status, c.gender, c.btx_country_id, c.email, c.sifre, c.createdby, c.createdate, c.editedby, c.editdate, c.mobilepromotion, c.mobilepushmessage, c.activated, c.masterpass_msisdn, c.masterpass_campaign_used, c.hashedp, c.isphashed, c.crm_only, c.crm_email, c.anonymous, c.pswd_reset, c.pswd_update_time, c.create_source
  • Index Cond: (c.id = sc.btx_customer_id)
  • Filter: c.wantsalesinfo
11. 0.000 0.000 ↓ 0.0

Index Scan using wtsnmaddpidx on public.nmrecs nm (cost=0.00..0.87 rows=1 width=27) (actual rows= loops=)

  • Output: nm.wtsclientid, nm.wtsclub, nm.wtstitle, nm.wtsfirstname, nm.wtsnminsert, nm.wtslastname, nm.wtsnickname, nm.wtscompanyname, nm.wtshomephone, nm.wtscellphone, nm.wtsfax, nm.wtsemail, nm.wtssortname, nm.wtspostcd, nm.wtsaddress1, nm.wtsaddress2, nm.wtsaddress3, nm.wtsaddress4, nm.wtsaddress5, nm.wtsaddress6, nm.wtsbankaccno, nm.wtsidtype, nm.wtsidreference, nm.wtscreatemach, nm.wtscreateuser, nm.wtscreatetm, nm.wtsamendmach, nm.wtsamenduser, nm.wtsamendtm, nm.wtscountrycode, nm.wtsgender, nm.wtsdob, nm.wtsctemail, nm.wtsctcellphone, nm.wtscthomephone, nm.wtsctfax, nm.wtsctmail, nm.wtsprefcontact, nm.wtsdemograph0, nm.wtsdemograph1, nm.wtsdemograph2, nm.wtsdemograph3, nm.wtsdemograph4, nm.wtsdemograph5, nm.wtsdemograph6, nm.wtsdemograph7, nm.wtsdemograph8, nm.wtsdemograph9, nm.wtsnmblob, nm.wtsnmnote, nm.wtsdefpaymeth, nm.wtsdefpaynum, nm.wtscontinuepayflag, nm.wtsdefnexpr, nm.wtsdefccstart, nm.wtsnmtwoblob, nm.wtsfreetext0, nm.wtsfreetext1, nm.wtsfreetext2, nm.wtsfreetext3, nm.wtsfreetext4, nm.wtsfreetext5, nm.wtsfreetext6, nm.wtsfreetext7, nm.wtsfreetext8, nm.wtsfreetext9, nm.wtsfreelist0, nm.wtsfreelist1, nm.wtsfreelist2, nm.wtsfreelist3, nm.wtsfreelist4, nm.wtsfreelist5, nm.wtsfreelist6, nm.wtsfreelist7, nm.wtsfreelist8, nm.wtsfreelist9, nm.wtsfreenumber0, nm.wtsfreenumber1, nm.wtsfreenumber2, nm.wtsfreenumber3, nm.wtsfreecheck0, nm.wtsfreecheck1, nm.wtsfreecheck2, nm.wtsfreecheck3, nm.wtsfreedate0, nm.wtsfreedate1, nm.wtsfreedate2, nm.wtsfreedate3, nm.wtsnotetwoblob, nm.wtsisfrozen
  • Index Cond: (nm.wtsclientid = nz.wtsclientid)
12. 0.000 0.000 ↓ 0.0

Index Scan using customer_addresses_btx_customer_id_idx on btx.customer_addresses ca (cost=0.00..0.44 rows=1 width=16) (actual rows= loops=)

  • Output: ca.id, ca.isdefault, ca.line1, ca.line2, ca.zipcode, ca.town, ca.province, ca.city, ca.btx_country_id, ca.btx_customer_id, ca.phone, ca.title