Kevin, aren't we talking in this case of a subquery?

What we want is to limit the subquery to the Top n. SetMaxRow will set the
limit to the primary query.

João Fernandes

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Kevin Roche
Sent: quinta-feira, 31 de Agosto de 2006 11:22
To: [email protected]
Subject: RE: [Reactor for CF] Iterator performance question

João,

I disagree. You can use setMaxRows(n) on the Query Object. That will set the
Maxrows attribute on the query and CF will pass that to the JDBC Driver
which will convert it to TOP n.

Kevin

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Behalf Of João Fernandes
Sent: 31 August 2006 11:00
To: [email protected]
Subject: RE: [Reactor for CF] Iterator performance question


Reactor doesn't support TOP. You should maybe create a custom query for your
purpose. If you need that kind of functionality for most of your objects you
can always create a plugin.

João Fernandes

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Kevin Roche
Sent: quinta-feira, 31 de Agosto de 2006 10:55
To: [email protected]
Subject: RE: [Reactor for CF] Iterator performance question

Maybe I am being a bit dim here.....

Do I just use setWhere() on the Query object to create whatever I want?

How do I make a where Object that does the job below?

WHERE PrimaryKey NOT IN (SELECT TOP n PrimaryKey FROM Table
                                        ORDER BY PrimaryKey ASC)

Kevin


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Behalf Of Kevin Roche
Sent: 31 August 2006 08:48
To: [email protected]
Subject: RE: [Reactor for CF] Iterator performance question


Doug,

There are two interesting things here (at least for me...)

You wrote:
>My suggestion: write a custom query on your record that returns a query
>with all the data you need.

I think reactor can do a lot with Gateways that is at present not
Documented. I am trying to document some of them have started to do so on my
Blog. If you want to use anything I wrote so far or will wite in the next
couple of weeks as official documentation feel free to do that.

http://blog.objectiveinternet.com/backpage/

>If you call getArray() *all* the
>records in the iterator will be converted to records and you might as well
>go take a nap.  However, getArray(1,10) will convert the first 10 records
to
>Records and won't be as expensive.

I often do a similar thing with very large record sets where I let the
datbase give me the next 20 records each time. However this requires the SQL
query to be able to somthing like:

SELECT TOP 20 PrimaryKey, Field1, Field2, Field3
FROM Table
WHERE PrimaryKey NOT IN (SELECT TOP n PrimaryKey FROM Table ORDER BY
PrimaryKey ASC)
ORDER BY PrimaryKey ASC

This would retrurn 20 records starting with the (n+1)th record.

As far as I can see There is no way to use a SELECT with an IN() in Reactor
or am I missing it?

Kevin Roche

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Behalf Of Doug Hughes
Sent: 30 August 2006 17:54
To: [email protected]
Subject: RE: [Reactor for CF] Iterator performance question


Yea - that's beyond the capabilities of iterators.  I wouldn't treat that
many records as objects.  400 instantiations of anything is bad news.

My suggestion: write a custom query on your record that returns a query with
all the data you need.

Either that, or you could use getAt() and only convert a small set of
records in your iterator into objects.  By default the iterator is backed by
a query, so that should be fast enough.  If you call getArray() *all* the
records in the iterator will be converted to records and you might as well
go take a nap.  However, getArray(1,10) will convert the first 10 records to
Records and won't be as expensive.  Some method of using this might be a
good option for you.

Doug

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Aaron Lynch
Sent: Wednesday, August 30, 2006 11:44 AM
To: [email protected]
Subject: [Reactor for CF] Iterator performance question

I am encountering some slow processing/request time-outs when trying to
do any instantiation of an object's children (400 ish child objects ,
each has additional child objects of their own) and I am hoping someone
else out there has seen this too.

Here is the scenario:
Company object is instantiated in the session scope.

A Company has Many Questions (via a linked relational table
"CompanyQuestions")

(There happen to be 448 Questions associated with this Company.)

Each Question has a couple has One relationships of its own.

When I do a getQuestionIterator().getArray() I get a request timeout
(obviously, the same thing happens when I loop over the iterator to
access each Question object)...

note:  I changed the request timeout to 180 seconds just to see if it
could
complete within that time-frame, it still timed out.

When I do a getQuery() it runs fine and returns the record-set as it
should.

Reactor config is set to production mode...
Database is MSSQL 2000...

Any ideas on ways to improve this performance?  I need to get to the
Question's children as part of the process I am working on, and I would
like to be able to utilize the Question iterator if possible.

Thanks in advance,
Aaron Lynch
www.AaronJLynch.com




-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- --



-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
- --




-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
- --




-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- --



-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
- --




-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- --



-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Reply via email to