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