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

Откуда:
Сообщений: 11
Имеется простая таблица с приращением идентификатора, идентификатор - это номер заказа:

CREATE TABLE dvizhok.dbo.Orders_Numbering(
Number INT IDENTITY (1, 1),
OrderID UNIQUEIDENTIFIER NOT NULL,
CONSTRAINT PK_Orders_Number PRIMARY KEY (Number)
)

Проблема в том, что после перезагрузки сервера происходит увеличение идентификатора (номера заказа) на 1000 при обычной операции добавления!

Как победить это?

К сообщению приложен файл. Размер - 5Kb
8 фев 14, 09:31    [15538618]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 проблема с identity  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5975
Сделайте alter sequnce c опцией no cache: http://technet.microsoft.com/en-us/library/ff878572.aspx
Только учтите, что если по вашей таблице имеет место быть большое количество вставок на единицу времени, то после вышеуказанного alter скорость этих вставок уменьшится.
На моей памяти был случай, когда из-за аналогичного альтера - правда, на оракле - в одной конторе упал биллинг.
8 фев 14, 09:41    [15538622]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 проблема с identity  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5975
Пардон, невнимательно прочитал - думал, значения id берутся из сиквенса.
8 фев 14, 09:44    [15538626]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 проблема с identity  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
sh_a_w_
Как победить это?
Включить trace flag 272. Это отключит кеширование identity.
8 фев 14, 10:22    [15538664]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 проблема с identity  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31438
sh_a_w_
Как победить это?
Победить можно, как сказал invm, но учитывайте, что в любом случае непрерывность IDENTITY не гарантируется ни в какой версии сиквела. Для нумерации нужно использовать свои алгоритмы, и отделять нумерацию от PK записи.
8 фев 14, 10:44    [15538692]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 проблема с identity  [new]
sh_a_w_
Member

Откуда:
Сообщений: 11
flag 272 поставил, теперь буду над своим алгоритмом нумерации колдовать.
8 фев 14, 12:21    [15538881]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 проблема с identity  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
sh_a_w_
Проблема в том, что после перезагрузки сервера происходит увеличение идентификатора (номера заказа) на 1000 при обычной операции добавления!


известный БАГ: http://connect.microsoft.com/SQLServer/feedback/details/739013/
10 фев 14, 09:10    [15544546]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить