Hello all, I'm running the following query on about 6,000 records worth
of data, and it takes about 8 seconds to complete. Can anyone provide
any suggestions to improve performance? I have an index on
two columns in the transacts table (program_id, customer_id). If I specify a number
for customer.id
in the sub-select, query time is reduced to about 2 seconds, which
still seems like a million years for only 6,000 records, but I'm guessing that the sub-select can't resolve the id since it's done before the outer query, so it scans the entre recordset for every row? Transacts is a
many to many table for customers and programs. I know this query
doesn't even reference any columns from programs; however, I
dynamically insert where clauses to constrain the result set.
SELECT distinct customers.id,
first_name, last_name, address1, contact_city, contact_state,
primary_phone, email, array(select programs.program_name from
transacts, programs where customer_id = customers.id and
programs.id
= transacts.program_id and submit_status = 'success') AS partners from
customers, transacts, programs where transacts.customer_id = customers.id and transacts.program_id =
programs.id
- [SQL] Performance Problem with sub-select using array Travis Whitton