I do two water changes a week, 30-50% each time. One of those I vacuum gravel pretty aggressively. The other I just replace water. My tank is over stocked though.
Test your water and let that determine the frequency and extent of your changes. Depending on how your tank is stocked/filtered sucking gravel may not need to be as frequent. My tanks currently overstocked so my WCs are all about reducing nitrates, I dont get that much in my gravel that escapes my filtration.
I have sand so i just skim the python over the sand pick up all the poop stir the sand a bit then finish my WC. No point in not doing it since it takes the same amount of time to do.
I've got Oscars. Doing a water change without syphoning the bottom is like taking a shower and putting your dirty clothes back on. But in any of my tanks-it drives me bonkers to have crud build up on the sand. As far as how often to do a WC, let your nitrates be your guide.
Depends on your stock,but do a minimum of 25 to 30% at least once a week or more depending on your stock and parameters,i never really see any poop in my big tank but my fish move the sand about alot,but i do stir it up every 3rd wc at least and take any crud out that i see.