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

есть ли какие-то подводные камни в использовании computed column как части составного кластерного ключа?

Если более детально - есть задача сегментирования существующей таблицы. Сегментация будет на основе плавающего критерия (скажем все до текущей недели и все после). Хочу реализовать следующим образом:

1. Добавляем вычисляемое поле WeekInt datediff(week, DateField, getdate())
2. По этому значению создаем функцию секционирования CREATE PARTITION FUNCTION Weeks (int) AS RANGE LEFT FOR VALUES (0)
Для функции содаем схему Weeks_scheme.
3. В таблице меняем кластерный суррогратный ключ на:
ALTER TABLE [Table] ADD CONSTRAINT [PK_Table] PRIMARY KEY CLUSTERED
(
[Id] ASC,
WeekInt ASC
)ON Weeks_scheme(WeekInt)


Какие могут быть проблемы?
20 окт 15, 16:43    [18303798]     Ответить | Цитировать Сообщить модератору
 Re: Computed column as cluster index  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8834
question12345,
а просто поставить битовый атрибут в таблице (колонку) старый - новый никак, что ли? По нему разбить таблицу на две секции.
Выполняйте обновление атрибута с требуемой частотой.
20 окт 15, 17:25    [18304025]     Ответить | Цитировать Сообщить модератору
 Re: Computed column as cluster index  [new]
invm
Member

Откуда: Москва
Сообщений: 9844
question12345
1. Добавляем вычисляемое поле WeekInt datediff(week, DateField, getdate())
И получите недетерминированный столбец. Создать индекс по такому столбцу невозможно.
20 окт 15, 17:39    [18304098]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить