Недавно я задал этот вопрос: MS SQL разделяет идентификатор семян среди таблиц (Многие задавались вопросом, почему)
У меня есть следующий макет таблицы:
Таблица: Звезды
starId bigint
categoryId bigint
starname varchar (200)
Но моя проблема в том, что у меня есть миллионы и миллионы строк. Поэтому, когда я хочу удалить звезды из таблицы Stars, это слишком интенсивно на SQL Server.
Я не могу использовать встроенное разбиение на 2005+, потому что у меня нет корпоративной лицензии.
Когда я удаляю, я всегда удаляю идентификатор всей категории за раз.
Я думал о том, чтобы сделать такой дизайн:
Таблица: Star_1
starId bigint
CategoryId bigint constaint rock = 1
starname varchar (200)
Таблица: Star_2
starId bigint
CategoryId bigint constaint rock = 2
starname varchar (200)
Таким образом, я могу удалить целую категорию и, следовательно, миллионы строк в O (1), выполнив простую таблицу drop.
Мой вопрос в том, есть ли проблема иметь сотни тысяч таблиц на вашем SQL Server? Мне очень нравится падение O (1). Может быть, есть совершенно другое решение, о котором я не думаю?
Изменить:
Является ли звезда когда-либо измененной после ее установки? Нет.
Вам когда-нибудь приходилось запрашивать категории звезд? Мне никогда не приходится запрашивать категории звезд.
Если вы ищете данные о конкретной звезде, вы знаете, какую таблицу нужно запросить? Да
При вводе данных, как приложение примет решение, в какую таблицу помещать данные? Вставка звездных данных выполняется сразу в начале при создании categoryId.
Сколько будет категорий? Вы можете предположить, что будут бесконечные звездные категории. Пусть говорят до 100 звездных категорий в день и до 30 звездных категорий, которые не нужны в день.
Действительно ли вам нужно удалить всю категорию или только звезду, для которой были изменены данные? Да, вся звездная категория.
Вы пытались удалить партии? Да, мы делаем это сегодня, но это недостаточно. достаточно.
Другой метод - отметить запись для удаления? Нет необходимости отмечать звездочку как удаленную, поскольку мы знаем, что вся звездная категория может быть удалена.
Какая часть из них никогда не используется? Как правило, мы сохраняем данные каждой категории звезд в течение пары недель, но иногда нужно сохранять больше.
Когда вы решите, что полезно, что это хорошо навсегда или его еще нужно удалить позже?
Не навсегда, но до тех пор, пока не будет выдан ручной запрос на удаление категории. Если да, то что% времени это происходит? Не так часто.
Какое устройство диска вы используете? Единственное хранилище файловой группы и отсутствие разбиения на разделы.
Можете ли вы использовать SQL-предприятие? Нет. Есть много людей, которые запускают это программное обеспечение, и у них есть только стандарт sql. За пределами своего бюджета можно получить ms sql предприятие.