i'm not expert but if your wallet has heaaaaps of transactions perhaps that is causing the slowness as you have suggested ?
is rpc connecting to localhost/127.0.0.1 or is over a network ? ( assuming network is obviously working perfectly)
Localhost. What I don't understand is why rpc command getbalance of account takes long time, because that one should be fast regardless of number of transactions. So I am missing a point somewhere... I don't want to perform this big transaction to self if there would be no effect, because it would only cause service to be offline for some time, nothing more.