50% new water is a big water change. That would stress most fish. Tanks generally need a 20%-30-% weekly change depending on your levels of ammonia, nitrates, nitrites and oxygen.
This is a very broad statement, which may be true in some limited cases...but not as a general rule. If a tank is neglected for extended periods of time, undergoing a build-up of waste products and experiencing increasing acidification, or perhaps a build-up of minerals that increases hardness to extreme levels...and is then subjected to a large water change...then perhaps the fish may be stressed as a result. But if regular maintenance is carried out, including regular and frequent water changes, then there is absolutely no reason not to change 90% of the water without worry. I have done water changes of no less than 60 or 70%, and often up to 90%, for decades and have never shocked a fish by doing so. Even shrimp, which are often described as not handling large water changes well, actually thrive with large changes. The key is to change water often enough that it does not degrade to poor quality before the next change.
Don't change it when it is polluted; change it
before it becomes polluted.
Some will say that stability is important; no argument from me about that idea. A continuous drip system is of course best in this regard. But a schedule of frequent and large changes contributes to stability, simply by preventing parameters from deviating very far from the source water. It's the next best thing.
...if you are only changing your water every 3 weeks the odds are the oxygen is getting quite low...
No...you are making it sound as the water contains X amount of oxygen when put into the tank, which is gradually used up by the fish and replaced by then changing the water. It doesn't work that way. Oxygen easily dissolves into the water from the atmosphere. The amount the water can hold in solution is indeed limited by temperature, warmer water containing much less, and colder water more. As the fish utilize the oxygen, it is constantly replaced by more from the atmosphere, and perhaps also by plant respiration during daylight. Aeration and/or circulation moves the water and brings all of it into contact with the air, maximizing the speed of dissolution...with the maximum level determined by temperature. But...you are not changing water because its oxygen is "used up".