What are the main reasons for a time-out?
It is certainly not the material number, it is the data-volume that needs to be read.
Further he did not say single material, he said material type. (I have in a certain material type >2 million materials in my system)
And this process has to be finished before the border line of maximum foreground run time is exceeded. This is a parameter set by the Netweaver team. Not by an ABAPer.
MC46 is a standard transaction and not a self-made report where an ABAPer could fix his program.
The usual reason for a time-out is a wrong selection, many user select more than they need, instead of thinking while the fill the selection screen they finally just browse through the results to find the few numbers that were really needed.
Be honest, who is nowadays reading a thousand page report from the first line to the last.
If there is no way for a better selection, then the thing has to scheduled in background. But at the same time someone from Basis team should do a performance trace, and should find out how often this kind of selection is needed . Our team does this pro-active. They approach me and ask about the transaction and its functionality after they have seen that this is called often and causes performance issues. Finally they may decide if the create a better index for a faster access
Since it is a standard transaction, one could already check SAP OSS system with keyword MC46 performance to see if there are notes available. And if the situation is worse and no note is given, then they may create an incident at SAP to have SAP Support analyze
But I did not tell anything new, nothing what was not already said in those thousand other discussions.