Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 уникальный индекс по секционированной таблице  [new]
Рестиратус
Guest
Добрый день, подскажите, пожалуйста, по секционированным таблицам.

1. Есть таблица A
create table A (
  event_time datetime,
  reference_time datetime,
  ....
) on ps(event_time)
, где ps - некая схема секционирования.

2. Исходя из предварительных представлений о том, как будет использоваться таблица, по event_time создан кластерный индекс
create clustered index ic_a on a(event_time) on ps(event_time)
, но уникальность всех event_time при этом не гарантируется.

3. Зато необходимо гарантировать уникальность по reference_time.

Как это грамотно сделать?

С какими неприятностями можно столкнуться, если, допустим, попытаться создать уникальный индекс
create unique index uq_a on a(reference_time) on ps (reference_time)
с секционированием по reference_time?
21 апр 16, 12:17    [19087410]     Ответить | Цитировать Сообщить модератору
 Re: уникальный индекс по секционированной таблице  [new]
ппп-п
Guest
Рестиратус,

https://technet.microsoft.com/en-us/library/ms187526(v=sql.105).aspx
21 апр 16, 12:57    [19087726]     Ответить | Цитировать Сообщить модератору
 Re: уникальный индекс по секционированной таблице  [new]
Мимоходящий
Guest
Если не планируете переключать секции, можно сделать не партиционированный уникальный индекс.
21 апр 16, 13:10    [19087839]     Ответить | Цитировать Сообщить модератору
 Re: уникальный индекс по секционированной таблице  [new]
Рестиратус
Guest
Т.е. если правильно понял, создав таблицу вот так:
create table A (
  event_time datetime2(6),
  reference_time datetime2(6) unique (reference_time) on ps(reference_time),
  ...
) on ps(event_time)
я могу получить ситуацию, при которой сроки таблицы и индексы к ним будут размещатся в разных секциях и, потенциально, разных файловых группах. Чем это может обернуться, например, в плане удобства управления секциями.

И, ксати, что будет физически, если сделать вот так:
create table B (
  event_time datetime2(6),
  reference_time datetime2(6) unique
) on ps_cel(reference_time)
create clustered index ic_B on B(event_time) on ps_cel (event_time)
?
Создание двух параллельных таблиц, или как?
21 апр 16, 13:17    [19087926]     Ответить | Цитировать Сообщить модератору
 Re: уникальный индекс по секционированной таблице  [new]
Рестиратус
Guest
ппп-п, Мимоходящий,

Спасибо, за ответы (дополнил свой вопрос прежде, чем их увидел).
21 апр 16, 13:25    [19088013]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить