I think once a week is def enough to show improvement.
Having said that, I got a yearly membership to a course this year that includes unlimited range balls. This has been really good for my game. Since it is already paid for, I find myself being drawn to go do it - as opposed to worried about cost. I also hit big buckets now instead of small - and often hit more than one. And I always play some game to make sure every shot counts for me - that I'm not just aimlessly busting balls.
The chief 2 things I do are to ether bring a scorecard and actually do a virtual round. Playing each shot according to the distance and water and such (excluding putts of course).
The other thing I do - which I actually prefer - is to (after a little warmup) start at 9-iron and hit it until I hit a good shot with a specific target in mind. I judge the shot based on if it would have gotten me a bogey or better. If not - I hit another 9. Once I hit a good 9, then I hit 8 until I hit a good one. If I hit a good 8, I go to 7. If I hit a bad 8, I get demoted down to 9 again. Every shot results in a promotion or a demotion - hence you never hit the same club twice (except at the top and bottom of course). I use this theory to try to climb my way up the bag, 9 / 8 / 7 /6 / 5 / 4 / 4 off a tee / hybrid / hybrid off a tee / 3-wood off a tee. The goal being to get all the way to 3-wood (I don't carry a driver - would prob be driver for everyone else). If I can hit 5 good 3-woods in a row - I have 'won' the game and I start back at 9-iron.
This makes sense to me, because you will spend time where you need it most before progressing to more difficult clubs. If you aren't very good at hitting 7-iron, probably not very good at 4-iron. Also makes you concentrate on every shot as if it counts, makes you really judge how well you are doing, makes you change clubs constantly, gives you a goal to work toward, keeps it from getting boring, etc.