|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
Всем привет, помогите советом. У меня есть 10 БД, в каждой БД по 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.
В данный момент, если получить MAX(ID) по всем таблицам, получается расхождение между нижней и верхней границей ID разрыв в 16млн. ID_0 34710848780 ID_1 34703945141 ID_2 34707564312 ID_3 34705490603 ID_4 34704628894 ID_5 34701346555 ID_6 34706571656 ID_7 34701635807 ID_8 34694306628 ID_9 34701748929 Моя цель, "синхронизировать" между собой ID в этих таблицах, для этого мне нужно к максимальному ID из этого списка добавить 1млн, а остальные таблицы подогнать под это значение. Собственно, основной вопрос, как правильно указать следующее значение Identity Increment в таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 12:55 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 13:13 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
Осталось понять, откуда такая странная цель. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 13:18 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4.
Судя по всему, для решения моей задачи, нужно воспользоваться этой инструкцией. Правильно я понимаю? При использовании данной инструкци, на таблице, где уже есть данные, новые строки начнут вставляться с новым идентификатором? А шаг изменится или останется преждним? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 13:27 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич Осталось понять, откуда такая странная цель. Не смогу точно ответить на данный вопрос, так как выполняю роль исполнителя данной задачи, но насколько я понял, при таком разрыве, не все данные попадают в отчеты при применении условий и сортировок. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 13:29 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
teCa Гавриленко Сергей Алексеевич Осталось понять, откуда такая странная цель. Не смогу точно ответить на данный вопрос, так как выполняю роль исполнителя данной задачи, но насколько я понял, при таком разрыве, не все данные попадают в отчеты при применении условий и сортировок. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 13:38 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич teCa пропущено... Не смогу точно ответить на данный вопрос, так как выполняю роль исполнителя данной задачи, но насколько я понял, при таком разрыве, не все данные попадают в отчеты при применении условий и сортировок. Ну это значение держится последние пол года, поэтому, если и разъезжаются значения, то не сильно, поэтому завтра и через неделю, это значение будет не критично. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 13:41 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
teCa Гавриленко Сергей Алексеевич пропущено... Ну так они и дальше попадать не будут в те кривы отчеты, когда завтра значения опять разъедутся. Ну это значение держится последние пол года, поэтому, если и разъезжаются значения, то не сильно, поэтому завтра и через неделю, это значение будет не критично. IDENTITY не гарантирует последовательность. Там есть кеширование. Может произойти откат транзакции и т.п . Если у вас стоит задача пронумеровать строки и иметь четкую последовательность или какой-то особенный способ нумерации, то эту задачу надо решать иными средствами без IDENTITY. Например, через ROW_NUMBER(). SEQUENCE тоже картины не изменит. Для сортировки данных нужно завести специальное поле, например, XXXX_ORDER_BY и заполнять его требуемым способом. В хранилищах данных это распространенная практика. Не путайте сортировочное поле с первичным ключом, бизнес ключом или суррогатным ключом. Оно должно быть отдельным. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 13:48 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
a_voronin teCa пропущено... Ну это значение держится последние пол года, поэтому, если и разъезжаются значения, то не сильно, поэтому завтра и через неделю, это значение будет не критично. IDENTITY не гарантирует последовательность. Там есть кеширование. Может произойти откат транзакции и т.п . Если у вас стоит задача пронумеровать строки и иметь четкую последовательность или какой-то особенный способ нумерации, то эту задачу надо решать иными средствами без IDENTITY. Например, через ROW_NUMBER(). SEQUENCE тоже картины не изменит. У меня нет задачи изменить нумерацию строк, у меня задача - между базами сократить разрыв в ИД, например: ID_0 250 -> ID_0 350 ID_1 111 -> ID_1 351 ID_2 202 -> ID_2 352 ID_3 93 -> ID_3 353 При этом, в таблице БД ID_1 значения будут идти в сл порядке: ID 111 351 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 13:56 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
Добавлю, мне не нужна четкая последовательность, мне просто нужно разрыв в 16млн сократить до нескольких десятков тысяч например. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 13:59 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 14:17 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
teCa Добавлю, мне не нужна четкая последовательность, мне просто нужно разрыв в 16млн сократить до нескольких десятков тысяч например. Вам бы сначала разобраться, почему у вас возникает "разрыв". Предположу что: Во всех таблицах "Posts" вы содержите одинаковые данные Какая то таблица является исходной По мере её заполнения Вы периодически копируете новые строки в остальные таблицы При этом, не устанавливаете опцию identity_insert on, что влечёт собственную нумерацию поля ID в каждой из таблиц Если я прав, используйте опцию identity_insert on для копирования или уберите IDENTITY с поля ID на вторичных таблицах Для просто "синхронизировать" ID идея такова: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 15:17 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
Alexander Us teCa Добавлю, мне не нужна четкая последовательность, мне просто нужно разрыв в 16млн сократить до нескольких десятков тысяч например. Вам бы сначала разобраться, почему у вас возникает "разрыв". Предположу что: Во всех таблицах "Posts" вы содержите одинаковые данные Какая то таблица является исходной По мере её заполнения Вы периодически копируете новые строки в остальные таблицы При этом, не устанавливаете опцию identity_insert on, что влечёт собственную нумерацию поля ID в каждой из таблиц Если я прав, используйте опцию identity_insert on для копирования или уберите IDENTITY с поля ID на вторичных таблицах Для просто "синхронизировать" ID идея такова: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
немного не так, данные таблиц являются партициями разделенные на кратные(0/1/2/3../9), во всех таблицах включена опция identity_insert on, в данные таблицы идет поставка, условно в равной степени. Те в конечном счете я бы делал так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 16:20 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
Нахрена тогда ресидить, если вы явно вставляете значение в поле? O_o Лютый бред, короче. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 16:26 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, поддерживаю, тема - полный бред. Все равно, что регламентировать длину и ширину мазков при покраске стены. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 16:31 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, Не будьте так категоричны, уверен, что у такого подхода смысл есть, просто я не могу вам его пояснить. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 16:36 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
teCa немного не так, данные таблиц являются партициями разделенные на кратные(0/1/2/3../9), во всех таблицах включена опция identity_insert on, в данные таблицы идет поставка, условно в равной степени. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 17:02 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
teCa Гавриленко Сергей Алексеевич, Не будьте так категоричны, уверен, что у такого подхода смысл есть, просто я не могу вам его пояснить. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 17:04 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
alexeyvg teCa Гавриленко Сергей Алексеевич, Не будьте так категоричны, уверен, что у такого подхода смысл есть, просто я не могу вам его пояснить. Скорее всего при вставке нет конкретного значения, принцип в какую партицию попадет вставка определяется каким то своим внутренним алгоритмом, id же присваивается в момент вставки. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 17:09 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
Я скорее всего запутался и опцию IDENTITY INSERT ON принял за опцию настройки поля ID ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 17:12 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
teCa Я скорее всего запутался и опцию IDENTITY INSERT ON принял за опцию настройки поля ID Тогда ответ на ваш вопрос: teCa Собственно, основной вопрос, как правильно указать следующее значение Identity Increment в таблице? А на какое значение, сами вычисляйте, не понял я ваши объяснения про "партиции". ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 18:02 |
|
Сдвиг Identity Increment в таблице?
|
|||
---|---|---|---|
#18+
alexeyvg, Код: 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. 67. 68. 69. 70. 71. 72. 73. 74. 75.
Грубо говоря, сделал вот так. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 18:34 |
|
|
start [/forum/topic.php?fid=46&gotonew=1&tid=1686044]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
12ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 168ms |
0 / 0 |