If someone want to make experiments, here is the code used for testing -gn
set ::sql {select * from acs_objects limit 10000} proc dbi_dicts1 {cols rows} { set dicts {} foreach $cols $rows { set dict "" foreach __c $cols { lappend dict $__c [set $__c] } lappend dicts $dict } return $dicts } proc dbi_dicts2 {cols rows} { set dicts {} foreach $cols $rows { foreach __c $cols { dict set dict $__c [set $__c] } lappend dicts $dict } return $dicts } proc dbi_sets {cols rows} { set sets {} foreach $cols $rows { set dict "" foreach __c $cols { lappend dict $__c [set $__c] } lappend sets [ns_set create r {*}$dict] } return $sets } proc p1 {} { set sum 0 set count 0 set rows [dbi_rows -columns cols -max 1000000 -- $::sql] foreach d [dbi_dicts1 $cols $rows] { incr sum [dict get $d object_id] incr count } return [list $count $sum] } proc p2 {} { set sum 0 set count 0 set rows [dbi_rows -columns cols -max 1000000 -- $::sql] foreach d [dbi_dicts2 $cols $rows] { incr sum [dict get $d object_id] incr count } return [list $count $sum] } proc p3 {} { set sum 0 set count 0 foreach row [dbi_rows -result dicts -max 1000000 -- $::sql] { incr sum [dict get $row object_id] incr count } return [list $count $sum] } proc p4 {} { set sum 0 set count 0 set rows [dbi_rows -columns cols -max 1000000 -- $::sql] foreach row [dbi_sets $cols $rows] { incr sum [ns_set get $row object_id] incr count } return [list $count $sum] } proc p5 {} { set sum 0 set count 0 foreach dict [dbi_rows -result dicts -max 1000000 -- $::sql] { set row [ns_set create x {*}$dict] incr sum [ns_set get $row object_id] incr count } return [list $count $sum] } proc p6 {} { set sum 0 set count 0 foreach row [dbi_rows -result sets -max 1000000 -- $::sql] { incr sum [ns_set get $row object_id] incr count } return [list $count $sum] } ------------------------------------------------------------------------------ Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk _______________________________________________ naviserver-devel mailing list naviserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/naviserver-devel