Crimean |
---|
однозначного ответа нет. но частные решения возможны из-за того, что для такого масштабирования мы очень сильно упираемся в сетку решить абстрактно - никак но если чуть знать прикладуху - есть варианты вплоть до условной реплики данных на второй сервер, на котором данные индексированы по-другому а то и организованы |
вот какие примерно архитектурные меры могут приняты в такой ситуации: база данных разбита на 2 логических куска (скажем 15 таблиц в одной и 15 в другой), в основом запросы между ними не пересекаются.
Апдейтов мало, есть инсерты новых данных, и при каждой вставке новой строки необходимо просмотреть все имеющиеся записи на наличие определенный совпадений, причем в обоих логических частях базы. Именно это и занимает много времени. Хранилище данных не построить, т.к. никаких вычислительных запросов нет, в основном запросы типа найти запись среди всех остальных записей, у которой совпадают определенные поля, определенные поля имеют бОльшее или меньшее значение и т.д.
Я пока вижу только единственную возможность - разнести логические части базы на разные диски. Горизонтальное маштабирование которое есть в sql server'e не подходит - проблема не в количестве запросов (их сравнительно мало), а в том, что они сравнительно тяжелые