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

Откуда:
Сообщений: 5
можно ли отследить запросом последовательность уникальных ключей в таблице? есть ощущение, что они каким-то образом затерлись. Случайно обнаружил разрыв в последовательности, будто 1000+ строк были затерты. Хочу выявить было ли такое ранее
24 апр 19, 22:50    [21870978]     Ответить | Цитировать Сообщить модератору
 Re: последовательность уникальных ключей  [new]
msLex
Member

Откуда:
Сообщений: 7730
уникальные != последовательные
24 апр 19, 22:56    [21870983]     Ответить | Цитировать Сообщить модератору
 Re: последовательность уникальных ключей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30800
rage_karcher
Хочу выявить было ли такое ранее
Наверняка, это же штатное поведение сервера.
rage_karcher
можно ли отследить запросом
Запрос простой, найти ID, для которой нет записи с ID = ID-1
select * from table t1 
where not exists(select * from table t2 where t2.id = t1.id - 1)
24 апр 19, 23:59    [21871022]     Ответить | Цитировать Сообщить модератору
 Re: последовательность уникальных ключей  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36695
rage_karcher
можно ли отследить запросом последовательность уникальных ключей в таблице? есть ощущение, что они каким-то образом затерлись. Случайно обнаружил разрыв в последовательности, будто 1000+ строк были затерты. Хочу выявить было ли такое ранее
Креститесь, когда кажется. Ни один из существующих механизмов генерации последовательных уникальных ключей не гарантирует непрерывную последовательность даже при гарантированном отсутствии удаления или отката транзакции.
25 апр 19, 01:13    [21871053]     Ответить | Цитировать Сообщить модератору
 Re: последовательность уникальных ключей  [new]
dklim.kzn
Member

Откуда: Казань
Сообщений: 123
Гавриленко Сергей Алексеевич
...Ни один из существующих механизмов генерации последовательных уникальных ключей не гарантирует непрерывную последовательность даже при гарантированном отсутствии удаления или отката транзакции.


возмутило, полез смотреть)))

"Если значения должны быть последовательными, то транзакция должна использовать монопольную блокировку для таблицы или уровень изоляции SERIALIZABLE."

https://docs.microsoft.com/ru-ru/sql/t-sql/statements/create-table-transact-sql-identity-property?view=sql-server-2017
25 апр 19, 08:18    [21871170]     Ответить | Цитировать Сообщить модератору
 Re: последовательность уникальных ключей  [new]
dklim.kzn
Member

Откуда: Казань
Сообщений: 123
ну и для отслеживания ещё вариант

select id, idid
(
select id, lag(id) over (order by id) idid from table
) r
where id-1<>idid
25 апр 19, 08:25    [21871173]     Ответить | Цитировать Сообщить модератору
 Re: последовательность уникальных ключей  [new]
ЛиП
Member

Откуда:
Сообщений: 348
Еще перезапуск sql может делать пробел identity в 1000
25 апр 19, 10:24    [21871282]     Ответить | Цитировать Сообщить модератору
 Re: последовательность уникальных ключей  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Гавриленко Сергей Алексеевич
rage_karcher
можно ли отследить запросом последовательность уникальных ключей в таблице? есть ощущение, что они каким-то образом затерлись. Случайно обнаружил разрыв в последовательности, будто 1000+ строк были затерты. Хочу выявить было ли такое ранее
Креститесь, когда кажется. Ни один из существующих механизмов генерации последовательных уникальных ключей не гарантирует непрерывную последовательность даже при гарантированном отсутствии удаления или отката транзакции.

А как же киллер-фича 2017 - IDENTITY_CACHE?
25 апр 19, 11:09    [21871345]     Ответить | Цитировать Сообщить модератору
 Re: последовательность уникальных ключей  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36695
Руслан Дамирович
Гавриленко Сергей Алексеевич
пропущено...
Креститесь, когда кажется. Ни один из существующих механизмов генерации последовательных уникальных ключей не гарантирует непрерывную последовательность даже при гарантированном отсутствии удаления или отката транзакции.

А как же киллер-фича 2017 - IDENTITY_CACHE?
Как раз кеширование identity/сиквенсов и дает перерывы в непрерывной последовательности в некоторых случаях.
25 апр 19, 11:10    [21871348]     Ответить | Цитировать Сообщить модератору
 Re: последовательность уникальных ключей  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Гавриленко Сергей Алексеевич
Руслан Дамирович
пропущено...

А как же киллер-фича 2017 - IDENTITY_CACHE?
Как раз кеширование identity/сиквенсов и дает перерывы в непрерывной последовательности в некоторых случаях.

ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF
So, in SQL Server 2017 we have an option for preventing gaps in an identity field without having to use Trace Flag 272 at the instance level. This looks like a promising feature to avoid identity value gaps.

Как бы описание говорит о том, что как раз новая фича должна помочь "избавиться" от гэпов. Равно как и упоминание вскользь о хитром флаге.
25 апр 19, 11:34    [21871395]     Ответить | Цитировать Сообщить модератору
 Re: последовательность уникальных ключей  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
В реляционных СУБД пропуски нумерации строк не имеют никакого значения, все строки равноправны. Автор паникует.
25 апр 19, 11:54    [21871427]     Ответить | Цитировать Сообщить модератору
 Re: последовательность уникальных ключей  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36695
Руслан Дамирович
Гавриленко Сергей Алексеевич
пропущено...
Как раз кеширование identity/сиквенсов и дает перерывы в непрерывной последовательности в некоторых случаях.

ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF
So, in SQL Server 2017 we have an option for preventing gaps in an identity field without having to use Trace Flag 272 at the instance level. This looks like a promising feature to avoid identity value gaps.

Как бы описание говорит о том, что как раз новая фича должна помочь "избавиться" от гэпов. Равно как и упоминание вскользь о хитром флаге.
Отключение кеширования в сиквенсе очень сильно убивает производительность генерации, здесь будет то же самое. Ну, ок, для любителей феншуя подойдет "фича".
25 апр 19, 12:47    [21871528]     Ответить | Цитировать Сообщить модератору
 Re: последовательность уникальных ключей  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Гавриленко Сергей Алексеевич
для любителей феншуя

Я и не радею за феншуй - пусть себе колено прострелит.
Ну видно же, что человеку нечем заняться, если он начал обращать внимание на пропуски в indentity.

Я к тому, что не стоит разбрасываться категоричными заявлениями.
Не феншуйно как-то выходит...
25 апр 19, 14:14    [21871663]     Ответить | Цитировать Сообщить модератору
 Re: последовательность уникальных ключей  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36695
Руслан Дамирович
Я к тому, что не стоит разбрасываться категоричными заявлениями.
Не феншуйно как-то выходит...
Даже когда я не прав, степень категоричности, с которой я несу чушь, я предпочитаю выбирать самостоятельно. Спасибо за понимание.
25 апр 19, 14:25    [21871672]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить