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 )