Não há armazenamento persistente de balanceamento de carga. Você pode particionar o armazenamento (sharding), que funciona apenas para domínios problemáticos muito restritos ou para aplicativos projetados explicitamente para scale-out desde o início, você pode dimensionar leituras usando stand-by legível (replicação, envio de log, espelhamento + snapshots, AlwaysOn), que funciona para relatórios com atraso aceitável de back-in-time, e existem até mesmo de esquemas de replicação master-master complicados, que não funcionam.
Portanto, a opção somente é para corrigir o aplicativo ou reforçar o banco de dados. A correção de aplicativo sempre gera os melhores resultados, mas requer que você tenha acesso a um recurso muito raro (bons desenvolvedores) e a tempo. A outra alternativa, que nunca corresponderá ao resultado de consertar o aplicativo, é reforçar o banco de dados. O que requer que você identifique o gargalo. Esperas e filas é uma excelente metodologia, comprovada para produzir resultados quando aplicada corretamente. Se você não tem ideia de como fazer isso, entre em contato com um profissional respeitável e peça ajuda.