Я так понял каждого контрагента надо прогонять через 500 фильтров. Какие-нибудь бюджетно-дебиторско-порядочности контроли, которые пользователи сами придумывают и набрасывают в свой справочник проверок.
Если супер коротко о предметной области задачи, то пользователи хотят проверять при помощи таковых рандомных фильтров попадание контрагента в различного рода международные списки и реестры.
Не сказал бы, например при создании нового контрагента или заключения с ним контракта нужно быстро проверить его на эти самые фильтры. Если бы не это условие, то я бы забил на оптимизацию.