powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сегментирование таблиц и constraints
3 сообщений из 3, страница 1 из 1
Сегментирование таблиц и constraints
    #39663978
=Сергей=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, прошу критики и помощи с сегментированием, есть вопрос об установке ограничений на сегменты. В качестве аргумента для функции сегментирования выступает дата, а в целях компактности заменил дату на количество секунд после 2000-01-01 00:00:00.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create partition function [pf_date](int) as range right for values()
create partition scheme [ps_date](int) as partition [pf_date] to ([primary])
create table [T_BigTable]
(
	 [id] bigint identity(1,1) not null
	,[DateTime] int not null
	,[ID1] int not null
	,[ID2] int not null
	,[Count] smallint not null
) on [ps_date]([DateTime])
create index [idx_ID1] on [T_BigTable]([ID1]) on [ps_date]([DateTime])
create index [idx_ID2] on [T_BigTable]([ID2]) on [ps_date]([DateTime])


Каждый день создаётся файловая группа с файлом и в ней stage таблица, а в функцию сегментирования добавляется граничное значение.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
create table [T_20180620]
(
	 [id] bigint identity(1,1) not null
	,[DateTime] int not null
	,[ID1] int not null
	,[ID2] int not null
	,[Count] smallint not null
) on [ps_date]([DateTime])


Таблица заполняется данными за сутки, Затем создаются индексы по [ID1] и [ID2] и таблица переключается в качестве секции в [T_BigTable].
Для чего на стейдж таблицу нужно накладывать ограничения
Код: sql
1.
alter table [T_20180620] with check add constraint [T_20180620_CK] check ([DateTime] >= cast(datediff(ss,'2000-01-01','2018-06-20 00:00:00')) and [DateTime] <= cast(datediff(ss,'2000-01-01','2018-06-20 23:59:59.997')))


И как нужно эти ограничения описать при создании сегментированной [T_BigTable].
...
Рейтинг: 0 / 0
Сегментирование таблиц и constraints
    #39663998
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Сергей=И как нужно эти ограничения описать при создании сегментированной [T_BigTable].
При создании сегментированной [T_BigTable] вы указываете схему секционирования ps_date
Когда вы делаете стейж таблицу с ограничением, ограничение попадает на одну из секций большой таблицы, указанных в ps_date
То есть на большую таблицу ограничение делать не надо, оно делается только на переключаемую таблицу.
...
Рейтинг: 0 / 0
Сегментирование таблиц и constraints
    #39664196
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Сергей=,

ограничение это не какая-то магия, а гарантия того, что в таблице находится содержимое переключаемого сегмента и не более того.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сегментирование таблиц и constraints
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]