|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
сразу в нескольких базах(одинаковых по структуре), в течении нескольких дней поле ID int IDENTITY(1,1) в разных таблицах прыгнуло ровно на 1000 т.е. шли номера заказов ..., 11644, 11645 затем резко пошло 12645, 12646,... а в некоторых чуть меньше чем на тысячу 173, 174, 1169, 1170 закономерности не вижу вообще Identity( да и вообще те таблицы), никто не трогал, за последние N лет такого никогда не случалось месяц назад перешли на новый сервер Win 2012 + SQL Server 2012 причем сейчас уже все продолжается как положено но клиенты возмущаются что у них прыгнули номера инвойсов, для них это важно я тоже в шоке в чем может быть проблема? вероятность того что сразу несколько фирм создали 1000 заказов и тут же из удалили исключена :) проверял лог ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2013, 21:53 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNV, http://msdn.microsoft.com/ru-ru/library/ms186775.aspx читайте замечания. Если у вас SQL Server 2012, Вам для таких целей надо использовать sequence - http://msdn.microsoft.com/ru-ru/library/ff878058.aspx . ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2013, 22:05 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNVв чем может быть проблема? Нет никакой проблемы. Вы почему то решили, что IDENTITY гарантирует непрерывность значений. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2013, 22:07 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
kalimbaЕсли у вас SQL Server 2012, Вам для таких целей надо использовать sequence - http://msdn.microsoft.com/ru-ru/library/ff878058.aspx] http://msdn.microsoft.com/ru-ru/library/ff878058.aspx .sequence тоже не гарантирует непрерывности. Если есть такие требования у пользователей, то их нужно просто реализовывать, программировать, встроенные средства этого обеспечить не могут, и это не ошибка программистов, а осознанное решение. DNVвероятность того что сразу несколько фирм создали 1000 заказов и тут же из удалили исключена :) проверял логМожет быть, лог фиксирует не все вставки, как реализовано логирование? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2013, 23:11 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
перелопатив интернет, понял что это "фишка" SQL 2012 после Fail перезагрузки SQL он такое вытворяет как раз это это и случилось в те дни для возврата к старому поведению советуют выполнить "Use trace flag 272" но я что-то не понял что это за команда, и как ее выполнить ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:15 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNVперелопатив интернет, понял что это "фишка" SQL 2012 после Fail перезагрузки SQL он такое вытворяет как раз это это и случилось в те дни для возврата к старому поведению советуют выполнить "Use trace flag 272" но я что-то не понял что это за команда, и как ее выполнитьЭто у вас в мозгах "фишка", исключительно. Забейте и найдите себе более полезные занятия, чем погоня за "дырками identity". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:18 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
и еще, на локальной машине у меня такое тоже случалось с SQL 2012 но я как то не реагировал а на сервере это уже серьезно, компании - клиенты негодуют. Переделывать систему с ручной нумерацией почти не реально довольно большой проект сотни процедур... надо как-то вернуть старое поведение. За всю историю проекта в SQL 2000 - 2008 R2 никогда такого не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:20 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNVи еще, на локальной машине у меня такое тоже случалось с SQL 2012 но я как то не реагировал а на сервере это уже серьезно, компании - клиенты негодуют. Переделывать систему с ручной нумерацией почти не реально довольно большой проект сотни процедур... надо как-то вернуть старое поведение. За всю историю проекта в SQL 2000 - 2008 R2 никогда такого не было.Ну, вы сами себе злобный буратина. Ставьте назад SQL 2000, чо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:24 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
Гавриленко Сергей АлексеевичDNVперелопатив интернет, понял что это "фишка" SQL 2012 после Fail перезагрузки SQL он такое вытворяет как раз это это и случилось в те дни для возврата к старому поведению советуют выполнить "Use trace flag 272" но я что-то не понял что это за команда, и как ее выполнитьЭто у вас в мозгах "фишка", исключительно. Забейте и найдите себе более полезные занятия, чем погоня за "дырками identity". да нет не только у меня если интересно, не ляпнуть а разобраться, почитайте ссылки http://www.rsdn.ru/forum/db/5059467.all https://connect.microsoft.com/SQLServer/feedback/details/739013/alwayson-failover-results-in-reseed-of-identity#details это именно поведение SQL 2012 и я не могу просто это проигнорировать, т.к. это касается не меня а клиентов ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:26 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
Гавриленко Сергей АлексеевичНу, вы сами себе злобный буратина. Ставьте назад SQL 2000, чо. вы когда нибудь делали downgrade базы? только реально, а не теоретически? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:28 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNVГавриленко Сергей Алексеевичпропущено... Это у вас в мозгах "фишка", исключительно. Забейте и найдите себе более полезные занятия, чем погоня за "дырками identity". да нет не только у меня если интересно, не ляпнуть а разобраться, почитайте ссылкиМне реально не интересно разбираться, почему некоторый механизм не ведет себя так, как никогда и не гарантировалось, что он должен себя вести. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:28 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNVГавриленко Сергей АлексеевичНу, вы сами себе злобный буратина. Ставьте назад SQL 2000, чо. вы когда нибудь делали downgrade базы? только реально, а не теоретически?Ну ради клиентов бы сделал, если посчитал, что сделать нормальную нумерацию сложнее, чем даунгрейднуть базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:32 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
тогда избавьте меня от своих словоиспражнений, и дайте ответить тем кто может мне помочь. провалы при удалении или при rollback не интересуют но вот еще один скачок в 1000 единиц может привести к серьезному конфлитку с заказчиками ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:33 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
к переносу сервера мы готовились почти полгода, т.к. простои недопустимы и если я просто скажу начальству а двайте-ка еще раз переустановим сервер, меня не поймут единственное решение в сложившейся ситуации - возврат к старому поведению. разберусь, отпишу что сделал ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:36 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNVГавриленко Сергей АлексеевичНу, вы сами себе злобный буратина. Ставьте назад SQL 2000, чо. вы когда нибудь делали downgrade базы? только реально, а не теоретически? Делали. Относительно несложно Нумерацию переделать с identity на сиквенс/иной счетчик - тоже довольно несложно, даже при наличии не слишком правильно написанного приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:38 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
попробую этот вариант http://i.ll.do/2013/01/how-to-solve-sql-server-2012-identity.html ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:42 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNVк переносу сервера мы готовились почти полгода, т.к. простои недопустимыХреново вы готовились, раз такой (в ваших понятиях) косяк проморгали. DNVтогда избавьте меня от своих словоиспражнений, и дайте ответить тем кто может мне помочь.Посты одного мембера данного ресурса никак не могут помешать писать ответы другому. Плохо, что такие очевидные вещи для вас не очевидны. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:42 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
на локальном компе помог вариант с http://i.ll.do/2013/01/how-to-solve-sql-server-2012-identity.html What I did: Setting Trace Flag 272 on SQL Server 2012 Open "SQL Server Configuration Manager" Click "SQL Server Services" on the left pane Right-click on your SQL Server instance name on the right pane ->Default: SQL Server(MSSQLSERVER) Click "Properties" Click "Startup Parameters" On the "specify a startup parameter" textbox type "-T272" Click "Add" Confirm the changes буду завтра запускать на сервере ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 01:57 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNV, Тебе-то что за горе? Ну, прыгнули... Сервер надо аккуратно гасить, и все будет ок с идентити. Но если и прыгнет — ничего страшного. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 09:18 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNV, У тебя номера инвойсов через identity генерируются? Ну-ну... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 09:20 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNV, запомни раз и навсегда Identity гарантирует уникальность, а не генерацию в восходящем порядке, без дырок. Он так устроен by design. Он именно поэтому быстр. А генерация в строго восходящем порядке вообще требует сериализации всех транзакций к данной таблице, чего ты явно не хотел бы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 09:26 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
MasterZivIdentity гарантирует уникальностьНе гарантирует. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 09:31 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNVпопробую этот вариант http://i.ll.do/2013/01/how-to-solve-sql-server-2012-identity.html Тебе не identity надо фиксить, а логику своего приложения, тебе надо переделать генерацию номеров инвойсов с identity на свой собственный генератор. PK таблицы оставляешь в покое, как он есть, добавляешь туда ещё одно поле, номер инвойса, посде добавления UPDATE-ишь его из старого поля (PK). Заменяешь в приложении все случаи использования старого PK как номера инвойса на новое поле. при очень большом количестве таких мест или сложном изменении можно сделать наоборот -- добавить новое поле для первичного ключа, и про UPDATE-ить его из старого поля. По идее, PK должен использоваться реже и более детерминировано, чем номер инвойса. Ну и о генерации нового номера инвойса -- делаешь таблицу NEXT_DOCUMENT_NUMBER ( document_type varchar(50) primary key, next_doc_number int ... ); Ну и внутри транзакции создания документа делаешь Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 09:42 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
invmMasterZivIdentity гарантирует уникальностьНе гарантирует. Оно гарантирует, что при правильном использовании оно будет тебе генерировать уникальное значение при каждом обращении. И это в многопользовательской среде. Естественно, в БД констрейнтом identity не является, если ты это имел в виду. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 09:45 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
MasterZivЕстественно, в БД констрейнтом identity не является, если ты это имел в виду.Вот именно. Поэтому, имхо, нельзя говорить, что Identity гарантирует уникальность, дабы не вводить в заблуждение новичков. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 09:53 |
|
|
start [/forum/topic.php?fid=46&msg=38198214&tid=1685197]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 291ms |
0 / 0 |