I've seen a dramatic slow down when using autonumber in its two argument version (using labels to create separate autonumber ranges) and using quite a lot distinct labels (e.g. using an input field value), but it seems you are using a constant here ('header'), right?
Could you compare to using autonumber() without that label (though I assume you need this label to create a private range for the autonumber, but just to see the impact on the loading time)?
I did create a test with 3 different types of reload.
The load was based on 1 store
reload with autonumber
reload with autonumberhash256
and this is my result.
regular reload Duration: 04:30 Size: 961.423
reload with autonumber Duration: 16.19 Size: 919.812
reload with autonumberhash256 Duration: 11:54 Size: 711.161
So yes the reload with autonumberhash is faster compared with the autonumber but still a lot slower compared to the regular reload.
On the other hand the size of the qvw decreased allot.
Could you post the rows (or even the load statements for all three) for autonumber as per the test above.
There is no need to add the '-' within the autonumber.for example as they are static.
Hashing in general is a faster operation than concatenation as autonumber is forced to do.
I am surprise by the dramatic difference in QVW filesize.
Can you validate that the generated autonumber for with and without hash contains equal amounts of unique values and that all fields exists in both qvw's?
Hampus von Post
One other idea: create your own numbers by loading first the concatenated key or different parts of the keys. I will say that I do not believe it will "save" you, but I have seen in the past that some "out-of-the-path" ideas were the good ones.
MAPPING LOAD Distinct YourConcatenatedKey, ANumber
Into a 2 field table. So that you can use ApplyMap() later
But AutoNumber() functions are already sort of ApplyMap()
LOAD Distinct DifferentPartsOfThekeys, ANumber
Perform a JOIN later (but with your number of rows, it will be very CPU intensive and memory consuming)
Drop the unused fields to keep only the number in your table