I did a pip install psycopg2. If it is there,web2py will use it by default? 
Now the repeat fetches have disappeared.

On Tuesday, December 17, 2013 7:58:26 PM UTC+5:30, Massimo Di Pierro wrote:
>
> What if you use psycopg2?
>
> Massimo
>
> On Tuesday, 17 December 2013 08:25:01 UTC-6, Jayadevan M wrote:
>>
>> No. The number of fetches go up when the number of records go up. It is a 
>> very simple test case. First I inserted 100 records. 
>> insert into myt (nm, title) select generate_series(1,100), 'A';
>>
>> There was just one fetch. Then I inserted many more 
>>  insert into myt (nm, title) select generate_series(100,100000), 'A';
>>
>> If I see the log, it is like this . A parse, a bind, an execute, then all 
>> 'execute fetch'es.
>> 2013-12-17 19:07:57 IST [19893]: [23-1] user=myserrhpa,db=everest1 LOG:  
>> duration: 0.577 ms  parse <unnamed>: select * from myt
>> 2013-12-17 19:07:57 IST [19893]: [24-1] user=myserrhpa,db=everest1 LOG:  
>> duration: 0.420 ms  bind <unnamed>/pg8000_portal_10: select * from myt
>> 2013-12-17 19:07:57 IST [19893]: [25-1] user=myserrhpa,db=everest1 LOG:  
>> duration: 0.148 ms  execute <unnamed>/pg8000_portal_10: select * from myt
>> 2013-12-17 19:07:57 IST [19893]: [26-1] user=myserrhpa,db=everest1 LOG:  
>> duration: 0.151 ms  execute fetch from <unnamed>/pg8000_portal_10: select * 
>> from myt
>> 2013-12-17 19:07:58 IST [19893]: [27-1] user=myserrhpa,db=everest1 LOG:  
>> duration: 0.116 ms  execute fetch from <unnamed>/pg8000_portal_10: select * 
>> from myt
>>
>> My test.py has just this 
>> def querytest():
>>         sql="select * from myt "
>>         rows=db.executesql(sql)
>>         return dict(rows=rows)
>>
>> On Tuesday, December 17, 2013 7:46:45 PM UTC+5:30, Massimo Di Pierro 
>> wrote:
>>>
>>> You may have hidden recursive selects, for example in a represent 
>>> function.
>>>
>>> On Tuesday, 17 December 2013 07:41:47 UTC-6, Jayadevan M wrote:
>>>>
>>>> When I turned on logging for PostgreSQL during testing, I see that the 
>>>> number of fetches goes up dramatically for tables with a large number of 
>>>> rows. For example - 
>>>> 2013-12-17 19:08:03 IST [19893]: [791-1] user=myserrhpa,db=everest1 
>>>> LOG:  duration: 0.093 ms  execute fetch from <unnamed>/pg8000_portal_10: 
>>>> select * from myt 
>>>> 2013-12-17 19:08:03 IST [19893]: [792-1] user=myserrhpa,db=everest1 
>>>> LOG:  duration: 0.137 ms  execute fetch from <unnamed>/pg8000_portal_10: 
>>>> select * from myt 
>>>> 2013-12-17 19:08:03 IST [19893]: [793-1] user=myserrhpa,db=everest1 
>>>> LOG:  duration: 0.093 ms  execute fetch from <unnamed>/pg8000_portal_10: 
>>>> select * from myt 
>>>> 2013-12-17 19:08:03 IST [19893]: [794-1] user=myserrhpa,db=everest1 
>>>> LOG:  duration: 0.096 ms  execute fetch from <unnamed>/pg8000_portal_10: 
>>>> select * from myt 
>>>> 2013-12-17 19:08:03 IST [19893]: [795-1] user=myserrhpa,db=everest1 
>>>> LOG:  duration: 0.063 ms  execute fetch from <unnamed>/pg8000_portal_10: 
>>>> select * from myt 
>>>> 2013-12-17 19:08:03 IST [19893]: [796-1] user=myserrhpa,db=everest1 
>>>> LOG:  duration: 0.091 ms  execute fetch from <unnamed>/pg8000_portal_10: 
>>>> select * from myt 
>>>> 2013-12-17 19:08:03 IST [19893]: [797-1] user=myserrhpa,db=everest1 
>>>> LOG:  duration: 0.064 ms  execute fetch from <unnamed>/pg8000_portal_10: 
>>>> select * from myt 
>>>> 2013-12-17 19:08:03 IST [19893]: [798-1] user=myserrhpa,db=everest1 
>>>> LOG:  duration: 0.094 ms  execute fetch from <unnamed>/pg8000_portal_10: 
>>>> select * from myt 
>>>> 2013-12-17 19:08:03 IST [19893]: [799-1] user=myserrhpa,db=everest1 
>>>> LOG:  duration: 0.068 ms  execute fetch from <unnamed>/pg8000_portal_10: 
>>>> select * from myt 
>>>> Is this normal? How can we control the number of fetches - some 
>>>> parameter to set like array_size?
>>>>
>>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to