Store & Forward Memory Buffer and Local Cache Overflow

Almost certainly. Especially if you're seeing the issue escalate as we move further into the month.

On the gateway, for each historical provider you can configure the data partitioning. Just a caution that being to finite here can be as much of a headache as being to broad, albeit in a different way.

If you're going to use the historian then you can't really do much. If you can potentially move over to transaction groups then you have more control over how and where things are stored.

There are ways to optimize the queries. It depends a lot on the database you're using. @pturmel's suggestions 2,3, & 4 are probably the best places to start.

You may also find the discussion here interesting, it isn't about exactly the same thing but definitely has some insight into your issue.