Jens Vagelpohl wrote:
> 
> On 9 Feb 2007, at 09:29, Marko Kruijer wrote:
>>> I do notice that my suspected page is slow, but that's a page
>>> template, and there is not very much out of the ordinary going on
>>> there. Just a loop in tal over a sql result set.
> 
> "Just a loop in tal over a sql result set" can be extremely slow,
> depending on the size of your result set. You may not realize that every
> time you touch one of those resultset record objects the security
> machinery gets in the game to ensure the executing user is allowed to
> see the rendered result. This is true for every single field you're
> trying to show on the page.

I've been having similar speed problems with a page that loops through a
lot of SQL records. From what I can tell from the profiler, it is the
security machinery that is at fault.

> Workarounds I have used in this situation (eons ago) involved retrieving
> the resultset in trusted code (inside a filesystem product or an
> External Method) and converting it to a sequence of simple types, like a
> sequence of dictionaries, before handing it back to the page template.
> Those simple types don't cause security assertions and the rendering is
> sped up immensely.

There seems to be a built in method - .dictionaries() that does exactly
this. Unfortunatley, neither it, nor a simple external method I wrote to
 call my ZSQL methods seemed to help me.

Robert (Jamie) Munro

_______________________________________________
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to