I understand now, thanks for the advice! I think in my case, partitioning definitely works the best! For the existing table, seems like only one downtime for rebuilding the clustered index once after creating all the necessary partition functions for future dates. I think I can deal with syncing schema changes with archive tables! I do agree it is not worth it to use an availabiltiy group just for this. Even if there is more purpose (like reporting), using partition still result in less downtime in long term I think.