Я никогда не работал с разделами SQL Server, но в настоящее время я сталкивался с разработкой базы данных, для которой тома, вероятно, этого требуют. Система для купонов. Купоны будут выдаваться периодически, обычно каждые шесть недель, хотя будет также специальная выдача - например, для специального мероприятия. Количество клиентов составляет 15 миллионов, и для каждого события выдачи каждый клиент получит 6 различных типов купонов, что составит 90 миллионов экземпляров купона. Нам необходимо отслеживать данные о погашении экземпляра купона и сохранять их в течение 6 месяцев, хотя обычно купон действителен только в течение шести недель. Любой запрос на погашение недействительного купона не попадет в базу данных, поскольку он будет проверен POS до.
За шестимесячный период нам потребуется сохранить до 360 миллионов строк в таблице экземпляров купонов и до 72 миллионов (при условии максимальной ставки погашения 20%) в таблице погашений. У меня такое ощущение, что эти цифры слишком велики для одного раздела?
У меня вопрос - что использовать в качестве ключа раздела? Одним из очевидных кандидатов будет событие выдачи, дающее приблизительно 6 разделов. Но тогда я думаю, что, может быть, даже это даст слишком большой размер раздела, чтобы обеспечить оптимальную производительность? Можно ли разделить по двум ключам, например, по событию выдачи + последняя цифра идентификатора клиента? Таким образом, логика будет:
If issuance event = 1 and last digit of customer id < 5 then
Store in partition 1
Else if issuance event = 1 and last digit of customer id >4 then
Store in partition 2
Else if issuance event =2 and last digit of customer id <5 then
Store in partition 3
Else if issuance event =2 and last digit of customer id >4 then
Store in partition 4
Etc...
Кроме того, я не уверен в спецификации сервера базы данных, который нам понадобится. Хватит ли 16 ГБ и 8CPU? БД должна иметь возможность возвращать результат из таблицы экземпляров купона, введя числовое значение штрих-кода менее чем за полсекунды. Ожидаемый запрос транзакции для проверки (выбора) и выкупа (вставки), как ожидается, достигнет пика примерно 3500 в минуту.
64-битный сервер db SQL Server 2008r2 будет настроен как виртуальная машина с очень мощного хоста с доступом к высокопроизводительной и большой емкости SAN.
Я был бы очень благодарен за любые советы от тех, кто развернул решение SQL Server для управления подобными томами.
С уважением
Роб.