|
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 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
invmMasterZivЕстественно, в БД констрейнтом identity не является, если ты это имел в виду.Вот именно. Поэтому, имхо, нельзя говорить, что Identity гарантирует уникальность, дабы не вводить в заблуждение новичков. По этой причине ВООБЩЕ НИЧЕГО нельзя говорить тогда. Им блин чё не скажешь, всё не так поймут. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 12:35 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNV, у меня также было и с 2008-м mssql, тогда не было критично, хоть на 2000 тысячи увеличивает, а для нынешней моей задачи нужен ровный счет.) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2018, 11:55 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
БарсегDNV, у меня также было и с 2008-м mssql, тогда не было критично, хоть на 2000 тысячи увеличивает, а для нынешней моей задачи нужен ровный счет.) Т.е. вы уверены, что юзер DNV забросил всё, 5 лет мониторит тему в ожидании ответа ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2018, 14:24 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
DNVтогда избавьте меня от своих словоиспражнений, и дайте ответить тем кто может мне помочь. провалы при удалении или при rollback не интересуют но вот еще один скачок в 1000 единиц может привести к серьезному конфлитку с заказчиками Если бизнес логика вашего приложения требует создания непрерывного диапазона (последовательности) значений, то это надо реализовать механизмами, которые дают такую непрерывность. IDENTITY к таким механизмам не относится. Можно сделать NOCACHE и СНИЗИТЬ ВЕРОЯТНОСТЬ разрывов, но добиться их отсутствия нельзя. Нужно, чтобы ваше приложение это контролировало само. Приложение, может использовать значения, а потом произойдет откат транзакции. И разрыва не избежать. Даже sequence не панацея. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2018, 17:15 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
По-моему 2017 прикрутили некешируемый идентити по выбору. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2018, 22:53 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
Владислав КолосовПо-моему 2017 прикрутили некешируемый идентити по выбору.Осталось дождаться, когда еще и откатываемый прикрутят. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2018, 00:22 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
Владислав КолосовПо-моему 2017 прикрутили некешируемый идентити по выбору. В смысле - 2017? Его сразу сделали по флагу, как только ввели кэширование - флаг 272. С 2017 добавили возможность устанавливать этот параметр на уровне базы данных. ALTER DATABASE SCOPED CONFIGURATION ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2018, 09:54 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
коллеги подскажите плз две тестовые таблицы после перезагрузки БД и добавления строк один идентити на тбл Countries прыгнул на 1000, второй на тбл Humans пошел дальше (дырка на 1 единицу) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66.
Sep 24 2019 13:48:23 Copyright (C) 2019 Microsoft Corporation Express Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 18363: ) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2021, 20:23 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
andreymx подскажите плз Почему так произошло, написано выше. Как замедлить работу сервера, попутно уменьшив вероятность появления "дырок", тоже написано выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 09:59 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
уменьшение вероятности дырок не волнует где надо будет без дырок, я разберусь как сделать в прошлый раз корректировал обе таблицы интересно - почему на одной скакнуло, а на другой нет ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 10:06 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
alexeyvg Как замедлить работу сервера, попутно уменьшив вероятность появления "дырок", тоже написано выше. И что наличие дырок всё равно будет из-за отката транзакций, тоже упомянули. Интересно, есть ли люди, которые жалуются на пропуски в последовательности NEWSEQUENTIALID? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 10:08 |
|
Identity прыгнуло на 1000
|
|||
---|---|---|---|
#18+
andreymx интересно - почему на одной скакнуло, а на другой нет 1. Просто так совпало, что на момент "перезагрузки" кеш для одной из таблиц был исчерпан. 2. С предыдущей "перезагрузки" данные в одну из таблиц не добавляллись. 3. Для одной из таблиц было выполнено dbcc checkident с reseed. 4. Неизвестная бага. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 10:59 |
|
|
start [/forum/topic.php?all=1&fid=46&tid=1685197]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 314ms |
0 / 0 |