Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
alexeyvg, А пишет не так? Ещё раз Continuing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2019, 21:38 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
Спасибо Не будем использовать go nnn :) попроовал использовать while @@id <10000 begin end Работает как и должно работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2019, 21:55 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
Спасибо Похоже не стоит использовать go nnn C while работает нормпльно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2019, 21:57 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
Сергей08, Посмотрите вот эту статью от Erland Sommarskog: http://www.sommarskog.se/error_handling/Part2.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2019, 22:41 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
TaPaKalexeyvg, А пишет не так? Ещё раз ContinuingВ каком смысле "не так"? Да, было написано Continuing, и что происходит, я не понимал, потому что надпись не соответствовала происходящему (в итоге и оказалось, что происходит совсем не то). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2019, 23:17 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
alexeyvgTaPaKalexeyvg, А пишет не так? Ещё раз ContinuingВ каком смысле "не так"? Да, было написано Continuing, и что происходит, я не понимал, потому что надпись не соответствовала происходящему (в итоге и оказалось, что происходит совсем не то). и что не то? сколоко транзакций не сложились, соклько то остались не commit где там загадка прям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 08:42 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
TaPaKalexeyvgпропущено... В каком смысле "не так"? Да, было написано Continuing, и что происходит, я не понимал, потому что надпись не соответствовала происходящему (в итоге и оказалось, что происходит совсем не то). и что не то? сколоко транзакций не сложились, соклько то остались не commit где там загадка прямЗагадка в том, что 90 тыщ запросов insert были выполнены с сообщением " An error was encountered during execution of batch. Continuing.", однако никаких "An error" не было. И это сообщение - именно сообщение конструкции go nnn Если делать цикл, или просто писать insert-ы, то такого сообщения нет. Я просто не знал о специальных сообщениях студии для конструкции go nnn, поэтому удивлялся, пока не сделал репро и не разобрался. Вы же, наверное, тоже не знали, иначе зачем это: "Прекращайте Смотреть в том же сеансе", или "та то вы что-то придумываете, или весь скрипт показывайте или расскажите как у вас 1 выводит"? Ещё вы вот это писали: TaPaKСергей08, а, там всё проще GO валит всё в ** An error was encountered during execution of batch. Continuing. и ошибку лога. и всё, потом заходит в COMMIT и комитит то что смогло Наверное, это правильное объяснение, но очень лаконичное, я не понял, что имеется в виду, что : " заходит в COMMIT и комитит то что смогло " - это значит: " делает ROLLBACK, а потом исполняет одиночные стейтменты без большой транзакции, с автоматическим COMMIT-ом после каждого стейтмента ", а сообщение "An error was ..." относится к последней ошибке, и практического смысла в её выводе на каждый инсёрт нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 09:09 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
alexeyvg, автор"делает ROLLBACK, а потом исполняет одиночные стейтменты без большой транзакции, с автоматическим COMMIT-ом после каждого стейтмента", ТУТ нет никакго автоматического коммита после кажой транзакции. После всего имеем столько открытых транзакций сколько возможно закомитить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 09:37 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
как-то так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 09:59 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
TaPaKкак-то такВо втором варианте скрипта у автора перед инсертом стоит go, поэтому go 100000 у него повторяет только строку с инсертом, но не begin transaction. Поэтому явно запущенная транзакция откатилась при переполнении лога, и дальше строки вставлялись неявными транзакциями при выполнении в insert. Поэтому и @@trancount после всего этого процесса равен 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 10:02 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
TaPaKalexeyvg, автор"делает ROLLBACK, а потом исполняет одиночные стейтменты без большой транзакции, с автоматическим COMMIT-ом после каждого стейтмента", ТУТ нет никакго автоматического коммита после кажой транзакции. После всего имеем столько открытых транзакций сколько возможно закомититьЯ имею в виду, что после отката с сообщеним об ошибке, большой транзакции нет, и каждый инсёрт выполняется в своей транзакции, которая потом коммитится. Это была моя интерпретация ваших слов. Я просто пытаюсь понять, что означала ваша фраза "и всё, потом заходит в COMMIT и комитит то что смогло" Что это за COMMIT? Что в результате этот COMMIT зафиксировал, какую транзакцию? Сколько в этой транзакции было вставлено строк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 10:04 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
MinamotoTaPaKкак-то такВо втором варианте скрипта у автора перед инсертом стоит go, поэтому go 100000 у него повторяет только строку с инсертом, но не begin transaction. Поэтому явно запущенная транзакция откатилась при переполнении лога, и дальше строки вставлялись неявными транзакциями при выполнении в insert. Поэтому и @@trancount после всего этого процесса равен 0. да, при разделении так, откатывает первую, потом вставляет всё что может, т.е. пропускает первые N которые были вызваны перполнением, потом неявной транзакцией сразу с комитом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 10:13 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
alexeyvgЯ имею в виду, что после отката с сообщеним об ошибке, большой транзакции нет, и каждый инсёрт выполняется в своей транзакции, которая потом коммитится. да ничего там не коммитится вообще. и в таблице в результате ничего нет. не знаю, что там у вас такое странное делается, или вы не дожидаетесь завершения, но вот мой эксперимент. все те же исходные данные, 8Мб данных, 8Мб лога, таблица слегка другая: Код: sql 1. (ну вдруг бы что-то в таблицу попало, хоть посмотреть, что именно... если верить всем тут отписавшимся, какие-то коммиты тут у вас...) запрос: Код: sql 1. 2. 3. 4. 5. показываю, что ушло в лог. надо сказать, 2016-ый после чекпойнта и бэкапа лога написал мне 12 записей в лог, из них 2 LOP_BEGIN_XACT и 2 LOP_COMMIT_XACT, их исключаю на картинке. и вот кроме этих двух LOP_COMMIT_XACT никаких коммитов не было и нету. сколько смог, вставил, лог переполнил, откатил. заново транзакцию открыл, чтобы в ней вставлять, снова переполнил, снова откатил. с каждой попыткой вставить получалось все меньше, т.к. лог закакан. но все равно последнее, что сделал, это откат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 11:20 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
Yasha123, таблица слегка другая, запрос не совпадает, но результаты почему то другие - действительно, почему это :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 11:33 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
сейчас переделаю с ровно той же таблицей. а запрос как раз его и есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 11:37 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
Yasha123сейчас переделаю с ровно той же таблицей. а запрос как раз его и есть. та всё у вас так. при таком запросе остаются все остаются незакомиченные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 11:40 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
Yasha123сейчас переделаю с ровно той же таблицей. а запрос как раз его и есть.Не, про запрос показания путаются. Вот тут: 21984346 уже стоит go между begin transaction и insert - и это как раз и дает разницу в поведении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 11:46 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
Yasha123alexeyvgЯ имею в виду, что после отката с сообщеним об ошибке, большой транзакции нет, и каждый инсёрт выполняется в своей транзакции, которая потом коммитится. да ничего там не коммитится вообще. и в таблице в результате ничего нет.Вот, полный тест; сделал, что бы в таблице оставалось 5 строк Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 12:09 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
MinamotoYasha123сейчас переделаю с ровно той же таблицей. а запрос как раз его и есть.Не, про запрос показания путаются. Вот тут: 21984346 уже стоит go между begin transaction и insert - и это как раз и дает разницу в поведении.Ну понятно, нужно поставить go перед insert, а то что получается, 10 000 раз begin tran? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 12:11 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
да уж... без identity делает так: сперва все те же LOP_ABORT_XACT NULL 1 LOP_BEGIN_XACT NULL 1 LOP_DELETE_ROWS dbo.test 19721 LOP_INSERT_ROWS dbo.test 19721 затем начинает постранично писать с коммитом: LOP_BEGIN_XACT LOP_COMMIT_XACT LOP_FORMAT_PAGE LOP_HOBT_DELTA LOP_MODIFY_ROW а потом с какого-то момента посточно и тоже с коммитом: LOP_BEGIN_XACT NULL 1 LOP_COMMIT_XACT NULL 1 LOP_INSERT_ROWS dbo.test 1 и теперь в таблице у меня 4885 строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 12:13 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
MinamotoYasha123сейчас переделаю с ровно той же таблицей. а запрос как раз его и есть.Не, про запрос показания путаются. Вот тут: 21984346 уже стоит go между begin transaction и insert - и это как раз и дает разницу в поведении. хоть и нет у меня go перед инсертом, но выполняю я, выделив 2 строки: Код: sql 1. 2. так что никаких многократных открытий транзакций в явном виде у меня нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 12:16 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
Yasha123так что никаких многократных открытий транзакций в явном виде у меня нетЗначит, что то ещё не совпадает. Надёжнее делать полный репро, возьмите мой, что бы посмотреть. Ещё, может, у вас какие то установки студии другие... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 12:36 |
|
||
|
Возможно неполное завершение транзакции?
|
|||
|---|---|---|---|
|
#18+
alexeyvgYasha123так что никаких многократных открытий транзакций в явном виде у меня нетЗначит, что то ещё не совпадает. Надёжнее делать полный репро, возьмите мой, что бы посмотреть. Ещё, может, у вас какие то установки студии другие... для полного совпадения нужно еще совпадение версий серверов. в лог же разное пишется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2019, 12:38 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39870369&tid=1687205]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
145ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 500ms |

| 0 / 0 |
