Is your database slowing you down? Simply too much data?
Here is a tip. Create a top level integer attribute on the main offending table, call it or_year or similar. Create a non-unique index on this attribute. or_year can default to null. A daily update process can fill in this year attribute for data older than say 3 months and the query you are having issues with can have a ‘and or_year IS NULL’ added to it.
If this is the sort of thing you might need help with, feel free to contact me.