My understanding of a view is that it is recreated when you run your query.
At least in Oracle it does the joins under the hood at the time you request
your data.  Thus, there should be no performance gains there. 

DRE

-----Original Message-----
From: Mark Stewart [mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 10, 2003 11:53 AM
To: CF-Talk
Subject: RE: Paging Principals


You need to be careful with this scenario because it may not be more
efficient, it depends upon your database schema. I tried this on an
application we were doing and our situation was that it was possible to
bring back 200 - 300k records (not likely, but possible). Our database was
created in such a way that even though we tried bringing back the top n
records, the query still had to "touch" every record in all the joined
tables. The result was minimal to no performance increase. The moral of the
story would be, it largely depends on your indexing and schema whether a
particular technique will work or not.

A view, as Jon mentioned, would be a very good idea since you wouldn't have
all the joins involved. The only thing you need to worry about with a view
is the inserting and updating on the underlying tables and what the
performance hit will be on back-end processing updating the view, especially
if you're relying on CF to do the inserting and updating.

Mark


-----Original Message-----
From: jon hall [mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 10, 2003 12:57 PM
To: CF-Talk
Subject: Re: Paging Principals


Since most people are not going to browse through all 100 pages of
records, pulling a 1000 records for everyone, has some obvious
inefficiencies.

I'd go for individual queries on each page, but take the 8 join query
out of CF, and make it a view. The view will help lessen the impact of
that query, and make your code less complex at the same time.

-- 
 jon
 mailto:[EMAIL PROTECTED]

Wednesday, September 10, 2003, 9:17:43 AM, you wrote:
GVB> Hi,
GVB> I have an app that queries a table and displays a subset of the query
GVB> results in a paged format, showing only 10 results per page.  Some
queries
GVB> will return upwards of 1,000 rows.

GVB> This query joins quite a few tables - say 8 or so, however the query
itself
GVB> only requires one table to obtain the basis of the dataset(the rest of
the
GVB> tables in the join are used for display info or 'cosmetic' type
GVB> information).

GVB> Generally speaking, which of the following would be more efficient:

GVB> Option 1:
GVB> - Query database, joining 8 tables, get entire dataset (1000 rows)
GVB> - CFOUTPUT / Loop limited to start row (page ordinal) and maxrows (10)

GVB> Option 2:
GVB> - Query database only based on the results of one table (1000 rows)
GVB> - Cfoutput / Loop limited to start row (page ordinal) and maxrows (10)
GVB> - within output loop, perform second query joining the 8 tables, based
on a
GVB> single primary key returned from the initial dataset. (returns single
row)

GVB> In essence, the question revolves around whether it is more expensive
to
GVB> pull an entire 1,000 record joined dataset in one shot, or to make the
GVB> initial query lean, and then do ten consecutive queries performing the
join.
GVB> The former likely incurs more database load, while the latter would
incur
GVB> more interaction with odbc.

GVB> Whew.  Interested in your answers!

GVB> Thanks,
GVB> Geoffrey Brown
GVB> ________________________
GVB> Online Operations Manager
GVB> Deerfield.com
GVB> 989.732.8856 ext. 227 (Gaylord)
GVB> 231.935.4640 ext. 123 (Traverse City)
GVB> [EMAIL PROTECTED]

GVB> http://www.deerfield.com
GVB> Personal Service with a :-)

GVB> VisNetic (viz-net-ik) 2002: vision of the Internet
http://www.visnetic.com

GVB> 


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/lists.cfm?link=t:4
Subscription: http://www.houseoffusion.com/lists.cfm?link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Your ad could be here. Monies from ads go to support these lists and provide more 
resources for the community. 
http://www.fusionauthority.com/ads.cfm

Reply via email to