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

Откуда:
Сообщений: 31
Доброго дня.

Не могу разобраться что такое Sequences в MS SQL Server. Много гуглил, но основная идея ускользает.

Как я понял есть IDENTITY, и столбец с этим типом можно использовать как уникальный идентификатор строчки. Т.е. IDENTITY в рамках одной таблицы в каждой строчке будет уникальный. Но у типа IDENTITY есть минусы - долго (дольше) вычислять, занимает больше места чем мог бы, неудобочитаем для человек / трудно обращаться из внешнего ПО.

И есть Sequences. Это числовая последовательность с заранее обговорёнными типом (по дефолту bigint), стартовым значением, инкриментом, максимакльным значением, цикличностью и др.
И эту последовательность можно использовать заместо IDENTITY для таблички(таблиц, сквозная нумерация)?
При этом эта последовательность не является частью моей таблички?
Плюсы Sequences перед IDENTITY - быстрее считается (создаётся) и некоторые другие...

Что-то сумбурно получилось, но как есть. Так в чём основаная идея Sequences, или я в принципе всё описал выше?
2 дек 15, 13:06    [18502437]     Ответить | Цитировать Сообщить модератору
 Re: Что такое Sequences в MS SQL Server?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Arvalon
Как я понял есть IDENTITY, и столбец с этим типом можно использовать как уникальный идентификатор строчки. Т.е. IDENTITY в рамках одной таблицы в каждой строчке будет уникальный. Но у типа IDENTITY есть минусы - долго (дольше) вычислять, занимает больше места чем мог бы, неудобочитаем для человек / трудно обращаться из внешнего ПО.

IDENTITY не гарантирует уникальности

Arvalon
Плюсы Sequences перед IDENTITY - быстрее считается (создаётся) и некоторые другие...

Эти плюсы вы сами нашли/измерили ?

Arvalon
Так в чём основаная идея Sequences, или я в принципе всё описал выше?

A sequence is a user-defined schema bound object that generates a sequence of numeric values according to the specification with which the sequence was created.
Т.е. основная идея - это дать пользователю возможность самому определять параметры генерации последовательности
2 дек 15, 13:11    [18502460]     Ответить | Цитировать Сообщить модератору
 Re: Что такое Sequences в MS SQL Server?  [new]
Arvalon
Member

Откуда:
Сообщений: 31
Glory
Arvalon
Плюсы Sequences перед IDENTITY - быстрее считается (создаётся) и некоторые другие...

Эти плюсы вы сами нашли/измерили ?

Нет конечно же, прочитал в книжке! )

...
The first benefit of sequences is that it is possible for SQL Server not only to retrieve the next values one at a time
from the underlying sequence table (like IDENTITY), but also to cache a range of numbers in memory for faster access
and retrieval. A cached set of numbers will work faster than using the IDENTITY property, which is generated with
each insertion.

...
Robin Dewson - Beginning SQL Server for Developers, стр. 137
2 дек 15, 13:17    [18502494]     Ответить | Цитировать Сообщить модератору
 Re: Что такое Sequences в MS SQL Server?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Arvalon
A cached set of numbers will work faster than using the IDENTITY property, which is generated with
each insertion.

Ага. О других эффектах кэширования ничего не сказано.
И о выключении кэширования тоже.
2 дек 15, 13:20    [18502518]     Ответить | Цитировать Сообщить модератору
 Re: Что такое Sequences в MS SQL Server?  [new]
MrVoid
Member

Откуда:
Сообщений: 333
Glory
И о выключении кэширования тоже.

??? NO CACHE
2 дек 15, 13:46    [18502753]     Ответить | Цитировать Сообщить модератору
 Re: Что такое Sequences в MS SQL Server?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51302
Arvalon
Так в чём основаная идея Sequences, или я в принципе всё описал выше?

Основная идея последовательностей - чтобы было как в Оракуле SQL стандарте. Но в отсутствии row-level триггеров они не так удобны как в других СУБД.
2 дек 15, 14:58    [18503348]     Ответить | Цитировать Сообщить модератору
 Re: Что такое Sequences в MS SQL Server?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Arvalon,

Sequences - это универсальный генератор последовательности чисел. Используйте как хотите. Он не имеет ограничений identity и не зависит от таблиц. Однако, каждый инструмент хорош к своей задаче.
2 дек 15, 15:52    [18503756]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить