Votre façon de faire est assez simpliste. Il vaudrait mieux créer des vues partitionnées indexées.
En gros : une base par année avec une contrainte CHECK sur la date pour définir les bornes...