Supposed fix to #317518: New version of libsql-statement-perl is very, very much slower

Jens Rehsack rehsack at googlemail.com
Wed Oct 21 06:41:13 UTC 2009


2009/10/20 Paul Beardsell <paul at beardsell.com>:
> Please refer http://rt.cpan.org/Public/Bug/Display.html?id=16579
>
> I've been looking at the source code of various versions of SQL::Statement.
>
> Ty suggested a number of patches to address the performance problems I
> reported.  He supplied a patch file.
>
> My bug report "#317518: New version of libsql-statement-perl is very, very
> much slower" has been closed and the reasoning goes as follows.  The last
> Debian version was 1.5, the next version in Debian is 2.*, and the patch is
> reported as being applied in version 1.16.2.  I can't find the 1.16.2 code
> but I have found the 1.18 code.  Much of the patch is *not* to be found in
> 1.18

The patch from RT #16579 has been applied in 1.16_02 (I did that). Maybe your
patch wasn't so optimal that I did more optimization after it?
Anyway - since 1.22, process_predicate is obsoleted and replace by much
quicker code.

> The differences from 1.* to 2.* code are too great for me to get my head
> around in a short time, but I suspect if the patch is NOT to be found in
> 1.18, and it was reported as beinbg done in 1.16, that it is also not to be
> found in 2.*

Thanks that you see that a lot of work has been done from 1.15 to 1.22.
Without having timed the performance increase of my first patch in 1.16_1
(because it primarily addresses big implicit joins over dozen of tables), the
improvement from 1.20 to 1.21_1 is measured with 15%-20% speed
improvement (depending on the query, and I used hand optimized
pseudo-indexes on the used tables - with DBD::CSV it should speed up more),
the changes from 1.21_1 - 1.22 improve the primary change in 1.21_1, add native
IN and BETWEEN support (reduced SQL compare operations) and so on.

The question which I cannot answer by myself: what do you try to argue with this
mail? Did you measure with the new release(s) or do you try to understand each
change before?

/Jens



More information about the pkg-perl-maintainers mailing list