Well, apart from a DB redesign so that you can do 1 query instead of a
union of 5, lets look at the first query as an example:
select sa.street_number as prop_street_number, sa.street_name as
prop_street_name,
sa.city as prop_city, sa.public_remarks_01 as prop_public_remarks_01,
sa.public_remarks_02 as prop_public_remarks_02,
sa.list_price as prop_list_price,
(select sap.photo_filename from smlc_acr_photos sap where
sap.photo_mls_number =
sa.mls_number limit 1) as prop_photo_filename
Since you're joining smlc_acr_photos.photo_mls_number to
smlc_acr.mls_number, put an index on each column. Hopefully
smlc_acr.mls_number is a primary key and is already indexed. Repeat
for the other tables.
On Wed, Apr 23, 2008 at 7:21 AM, Rick Faircloth
<[EMAIL PROTECTED]> wrote:
> Hi, all...
>
> Up till now, my db's have been relatively small
> and fairly quick when being queried. I've never had to bother
> with indexes or other methods of optimizing queries.
>
> However, I've now got a db of about 6400 real estate properties.
>
> I've put together a "Browse Properties" page, which returns
> 20 records at a time and displays pagination.
>
> The query is pretty slow.
>
> Would indexes or perhaps another approach to this query
> make it quicker?
>
> Here's the code that pulls together records from the tables
> containing the various property types...
>
> <cfquery name="get_properties" datasource="#dsn#">
>
> select sa.street_number as prop_street_number, sa.street_name as
> prop_street_name,
> sa.city as prop_city, sa.public_remarks_01 as
> prop_public_remarks_01,
> sa.public_remarks_02 as prop_public_remarks_02, sa.list_price as
> prop_list_price,
> (select sap.photo_filename from smlc_acr_photos sap where
> sap.photo_mls_number =
> sa.mls_number limit 1) as prop_photo_filename
> from smlc_acr sa
> union
> select sc.street_number as prop_street_number, sc.street_name as
> prop_street_name,
> sc.city as prop_city, sc.public_remarks_01 as
> prop_public_remarks_01,
> sc.public_remarks_02 as prop_public_remarks_02, sc.list_price as
> prop_list_price,
> (select scp.photo_filename from smlc_com_photos scp where
> scp.photo_mls_number =
> sc.mls_number limit 1) as prop_photo_filename
> from smlc_com sc
> union
> select sl.street_number as prop_street_number, sl.street_name as
> prop_street_name,
> sl.city as prop_city, sl.public_remarks_01 as
> prop_public_remarks_01,
> sl.public_remarks_02 as prop_public_remarks_02, sl.list_price as
> prop_list_price,
> (select slp.photo_filename from smlc_lot_photos slp where
> slp.photo_mls_number =
> sl.mls_number limit 1) as prop_photo_filename
> from smlc_lots sl
> union
> select sr.street_number as prop_street_number, sr.street_name as
> prop_street_name,
> sr.city as prop_city, sr.public_remarks_01 as
> prop_public_remarks_01,
> sr.public_remarks_02 as prop_public_remarks_02, sr.list_price as
> prop_list_price,
> (select srp.photo_filename from smlc_ren_photos srp where
> srp.photo_mls_number =
> sr.mls_number limit 1) as prop_photo_filename
> from smlc_ren sr
> union
> select sres.street_number as prop_street_number, sres.street_name as
> prop_street_name,
> sres.city as prop_city, sres.public_remarks_01 as
> prop_public_remarks_01,
> sres.public_remarks_02 as prop_public_remarks_02, sres.list_price
> as prop_list_price,
> (select sresp.photo_filename from smlc_res_photos sresp where
> sresp.photo_mls_number =
> sres.mls_number limit 1) as prop_photo_filename
> from smlc_res sres
>
> </cfquery>
>
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to
date
Get the Free Trial
http://ad.doubleclick.net/clk;192386516;25150098;k
Archive:
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:304034
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe:
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4