powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Idenity
17 сообщений из 17, страница 1 из 1
Idenity
    #39867253
aseylanyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, вопрос такой
Имею таблицу с полем TableID
Idenity Стоит - YES
Idenity Increnent - 1
Idenity Seed - 1

Недавно обратил внимание, что при добавлениие новых 50 записей например TableID увеличивается от 1-50, через пару часов при добавлении новых записей нумерация поля не продолжается с 51 а может начинаться например с 1200 и уже увеличение идет начиная с этого номера допустим 1200-1270, потом может начатся с 5000 и так далее, в чем может быть проблема раньше работал на SQL2005 такого вроде не замечал сейчас работаю на 2012
Спасибо...
...
Рейтинг: 0 / 0
Idenity
    #39867254
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aseylanyanЗдравствуйте, вопрос такой
Имею таблицу с полем TableID
Idenity Стоит - YES
Idenity Increnent - 1
Idenity Seed - 1

Недавно обратил внимание, что при добавлениие новых 50 записей например TableID увеличивается от 1-50, через пару часов при добавлении новых записей нумерация поля не продолжается с 51 а может начинаться например с 1200 и уже увеличение идет начиная с этого номера допустим 1200-1270, потом может начатся с 5000 и так далее, в чем может быть проблема раньше работал на SQL2005 такого вроде не замечал сейчас работаю на 2012
Спасибо...
by design
ну и уберите autoclose
...
Рейтинг: 0 / 0
Idenity
    #39867255
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aseylanyan,
кто то вставил 1200 записей, а потом удалил их
...
Рейтинг: 0 / 0
Idenity
    #39867258
aseylanyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StarikNavyaseylanyan,
кто то вставил 1200 записей, а потом удалил их
Нет это исключается удалять могу только я
...
Рейтинг: 0 / 0
Idenity
    #39867259
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aseylanyanStarikNavyaseylanyan,
кто то вставил 1200 записей, а потом удалил их
Нет это исключается удалять могу только яВставил 1200 записей в транзакции, а потом сделал rollback.
...
Рейтинг: 0 / 0
Idenity
    #39867260
aseylanyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините а нельзя поподробней не очень понял откуда убрать

TaPaKaseylanyanЗдравствуйте, вопрос такой
Имею таблицу с полем TableID
Idenity Стоит - YES
Idenity Increnent - 1
Idenity Seed - 1

Недавно обратил внимание, что при добавлениие новых 50 записей например TableID увеличивается от 1-50, через пару часов при добавлении новых записей нумерация поля не продолжается с 51 а может начинаться например с 1200 и уже увеличение идет начиная с этого номера допустим 1200-1270, потом может начатся с 5000 и так далее, в чем может быть проблема раньше работал на SQL2005 такого вроде не замечал сейчас работаю на 2012
Спасибо...
by design
ну и уберите autoclose
...
Рейтинг: 0 / 0
Idenity
    #39867272
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aseylanyan,

Consecutive values after server restart or other failures -SQL Server might cache identity values for performance reasons and some of the assigned values can be lost during a database failure or server restart. This can result in gaps in the identity value upon insert. If gaps are not acceptable then the application should use its own mechanism to generate key values.

источник
...
Рейтинг: 0 / 0
Idenity
    #39867278
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iiyamaaseylanyan,

Consecutive values after server restart or other failures -SQL Server might cache identity values for performance reasons and some of the assigned values can be lost during a database failure or server restart. This can result in gaps in the identity value upon insert. If gaps are not acceptable then the application should use its own mechanism to generate key values.

источник
Переведу вкратце: как раз вроде с 2012 версии сервер стал кэшировать в памяти по 1000 значений идентити для ускорения вставки. Если сервер перезагружается - кэш теряется и сервер кэширует следующую 1000 для выдачи значений.

И вообще: IDENTITY не обеспечивает непрерывность, IDENTITY обеспечивает уникальность и возрастание значений.
...
Рейтинг: 0 / 0
Idenity
    #39867283
aseylanyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, я правильно понял что если мне не столь принципиально порядковый номер я могу продолжать спокойно работать. Просто так он быстрее дойдет до своего максимального значения
iiyamaaseylanyan,

Consecutive values after server restart or other failures -SQL Server might cache identity values for performance reasons and some of the assigned values can be lost during a database failure or server restart. This can result in gaps in the identity value upon insert. If gaps are not acceptable then the application should use its own mechanism to generate key values.

источник
...
Рейтинг: 0 / 0
Idenity
    #39867285
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MinamotoIDENTITY обеспечивает уникальность
нет, уникальность обеспечивает только уникальный индекс
...
Рейтинг: 0 / 0
Idenity
    #39867303
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLexMinamotoIDENTITY обеспечивает уникальность
нет, уникальность обеспечивает только уникальный индекс
Уникальность выдаваемых значений без изменения настроек identity, не? ) Может дубли выдать? Приведите пример, плиз, а то вдруг я понадеюсь на него...
...
Рейтинг: 0 / 0
Idenity
    #39867312
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MinamotomsLexпропущено...

нет, уникальность обеспечивает только уникальный индекс
Уникальность выдаваемых значений без изменения настроек identity, не? ) Может дубли выдать? Приведите пример, плиз, а то вдруг я понадеюсь на него...

Uniqueness of the value - Uniqueness must be enforced by using a PRIMARY KEY or UNIQUE constraint or UNIQUE index.

там же, чуть выше
...
Рейтинг: 0 / 0
Idenity
    #39867325
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MinamotomsLexпропущено...

нет, уникальность обеспечивает только уникальный индекс
Уникальность выдаваемых значений без изменения настроек identity, не? ) Может дубли выдать? Приведите пример, плиз, а то вдруг я понадеюсь на него...

вполне до какой-то версии такое развлекало

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE dbo.test  (a int identity(1,1))

INSERT INTO dbo.test DEFAULT VALUES 
INSERT INTO dbo.test DEFAULT VALUES 

EXEC ('SELECT a INTO dbo.test22  FROM dbo.test  ')

INSERT INTO dbo.test22 DEFAULT VALUES

SELECT * FROM dbo.test22  
...
Рейтинг: 0 / 0
Idenity
    #39867395
aseylanyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Одним словом могу ли я быть уверенным что если

Имею таблицу с полем TableID
Idenity Стоит - YES
Idenity Increnent - 1
Idenity Seed - 1

и это поле (TableID) установлено в Primary Key то я избегу дубликатов
Просто при работе и с SQL2000 и SQL2005 таких проблем не возникало уже на пртояжении 10 лет а сейчас при переходе SQL2012 как-то стремно стало.
Спасибо
...
Рейтинг: 0 / 0
Idenity
    #39867414
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aseylanyanОдним словом могу ли я быть уверенным что если

Имею таблицу с полем TableID
Idenity Стоит - YES
Idenity Increnent - 1
Idenity Seed - 1

и это поле (TableID) установлено в Primary Key то я избегу дубликатов
Просто при работе и с SQL2000 и SQL2005 таких проблем не возникало уже на пртояжении 10 лет а сейчас при переходе SQL2012 как-то стремно стало.
СпасибоДа. Будьте уверены. Благодаря Primary Key (а, значит, уникальному индексу). Попытка вставить дубликат завершится исключением.
А IDENTITY может скакать, это документировано.
По этому поводу здесь уже было много тем.
...
Рейтинг: 0 / 0
Idenity
    #39867416
aseylanyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо
...
Рейтинг: 0 / 0
Idenity
    #39867476
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aseylanyanПросто так он быстрее дойдет до своего максимального значенияДля мелких вставок дойти до предела INT не так просто, а для больших вставок пропусков не будет (скажем, при вставки миллиона записей он не будет их вставлять как 1001, 2001, 3001 и т.д.).
Так что не переживайте, хотя, конечно, эту особенность нужно учитывать при выборе типа identity-поля.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Idenity
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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