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

Reply via email to