João, Your'e right. Sorry I misunderstood what you were saying, my query requires TOP for both.
Can you even do a Subquery with a Reactor Gateway? I can't see how. Kevin -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of João Fernandes Sent: 31 August 2006 11:27 To: [email protected] Subject: RE: [Reactor for CF] Iterator performance question 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/ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- Reactor for ColdFusion Mailing List [email protected] Archives at: http://www.mail-archive.com/reactor%40doughughes.net/ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

