Just like to make a suggestion that might solve two issues: 1) as users accumulate more players, the more the game lags, and 2) there is a limit to the number of players one can accumulate, therefore a limit to how much money a user can spend on your game in acquiring them.
The solution is to limit the number of players a user can hold on his/her roster. Between actives, reserves and inactives, you could limit the number to 40-50 players (MLB limits roster size to 40, FYI). That way, users have to make decisions as to which players they keep when they acquire new ones. As needs change or as player ratings change after each season, users will undoubtedly want to re-acquire players they "missed" on. As someone who has worked in MLB primarily as a talent evaluator for the last 20 years, I can assure you that no one knows who all the best players will be year to year so that the possibility of some user building a perfect uber team is extremely remote. In this way you can be assured that a) rosters will always be manageable for quality game play, b) that users will always be trying to acquire new/former players and c) that there will always be quality players to be sought after. It will also add an element of realism to the game, as users will have to make personnel decisions just like real GMs do. Hope this is useful.