On 2/15/22 18:20, Vlad Khorsun wrote:
I'd vote to remove idx_numeric2 in favour of idx_decimal and look how
to improve
Decimal128::makeIndexKey() performance. For example, it stores every 3
decimal
digits into 10 bits using relatively complex (computationally)
algorithm with
shifts and multiplications. Storing every digit in 4 bits will use 2
bits per 3
digits more but should save come CPU circles, I believe.
Yes, it does help - but not too much.
select dat from biTest order by dat;
(I reference sample fromĀ #7133) becomes 1.1% faster with less dense
encoding. Pay attention - engine does a lot of other job, i.e. speedup
of this particular place is certainly much more.
Certainly we can use that performance increase for new index type. But I
doubt it's worth breaking existing DECFLOAT indices.
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel