Если данные в слоях не обновляются, можно использовать кеширование(заранее отстроить тайлы).
Если данные обновляются но, не редактируются непосредственно из приложения, можно поиграться с генерализацией вектора для более мелких масштабов.
Также стоит посмотреть на тип исходных данных, считывание значительно ускориться, если их расположить в ArcSDE.
Для сервака 4Гб совсем слабо, если запихивать все в ArcSDЕ нужно как минимум 8Гб.