В настоящее время я разрабатываю базу данных для использования в нашей компании. Мы используем SQL Server 2008. В базе данных будут храниться данные, собранные от нескольких клиентов. Целью базы данных является получение совокупных контрольных номеров для нескольких клиентов.
В последнее время меня беспокоит тот факт, что одна таблица, в частности, будет очень большой. Каждый клиент имеет приблизительно 20 000 000 рядов данных, и в базе данных в ближайшее время будет 30 клиентов (если не больше). В этой таблице будет сделано много запросов. Я уже замечаю проблемы с производительностью, и пользователи временно заблокированы.
Мой вопрос: будем ли мы в состоянии обрабатывать эту таблицу в будущем или лучше разбить эту таблицу на меньшие таблицы для каждого клиента?
Обновление. Прошло около полугода с момента создания таблиц. Следуя советам ниже, я создал несколько огромных таблиц. С тех пор я был экспериментировал с индексами и принял решение о кластеризованном индексе в первых двух столбцах (код больницы и код отдела), на котором мы разделили бы таблицу у нас был Enterprise Edition. Эта настройка работала нормально до недавнего времени, как предсказал Галвегян, возникают проблемы с производительностью. Восстановление индекса занимает много времени, пользователи блокируют друг друга, запросы часто занимают больше времени, чем требуется, и для большинства запросов он рассчитывает сначала скопировать соответствующую часть данных в временную таблицу, создать индексы в таблице temp и запустить запрос. Это не так, как должно быть. Поэтому мы рассматриваем возможность покупки Enterprise Edition для использования секционированных таблиц. Если покупка не может пройти, я планирую использовать обходное решение для выполнения разбиения на разделы в стандартной версии.