|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
Доброго времени суток! Подскажите пожалуйста такой момент, есть много "жирных" скриптов в которых INSERT идет в одну таблицу. Поскольку скрипты большие, запускаю на выполнение я их через sqlcmd, параметры такие использую SQLCMD -E -i script.sql -o log.txt Трудность в чем, первый прогнал скрипт, добавил 136 записей. Прогоняю второй, в log.txt rows affected, но количество записей не увеличивается, sqlcmd не отработал, но последний last batch был пол часа назад, сервер как будто ничего не делает, не инсертит. В sp_who2 от sqlcmd процесс AWAITING COMMAND. Инсертов в данный момент тоже не выполняется. Хотелось бы выяснить почему, что я упускаю? Пример скрипта заливаю на dropmefiles, они действительно большие, минимальный весит 700 метров. Через ssms они не открываются, открываю фаром. https://dropmefiles.com/q0a5d Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 18:07 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
Ondayl Хотелось бы выяснить почему, что я упускаю? Пример скрипта заливаю на dropmefiles, они действительно большие, минимальный весит 700 метров. Через ssms они не открываются, открываю фаром. Файл в 350 мб качать неохота, вы лучше положите сюда кусок. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 20:03 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
классический debug-подход это разбиение сложного процесса на более малые для определения на каком этапе происходит наибольшая задержка (или несколько из них) .. и так далее (если это что-то неприемлемое) пока не получится докопаться до истины / решения проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 20:54 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
alexeyvg, Код: sql 1.
Модератор: Свои портянки будьте добры убирать в тег spoiler ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 21:48 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
В подобных случаях для начала надо знать: - есть ли в целевой таблице триггеры. - есть ли ограничения в полях: непустота, превышение длины/значения, СЦ, несовместимость форматов (н-р даты, булеаны, разделители) - есть ли аномалии в файле: обрывы строк, левые символы, нехватка/смещение полей. Если возможно, зачитайте файл в эксель и поищите проблемы в полях. Проблема может быть в одном единственном месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 10:09 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
SET IMPLICIT_TRANSACTIONS OFF ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 10:23 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
И XACT_ABORT в ON стоит или OFF? Попутно - проверьте открытые транзакции и блокировки. Как один из вариантов - у вас молча отвалилось что-то сетевое по таймауту между вами и сервером. Клиент терпеливо ждёт ответа от сервера, сервер от клиента подтверждения транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 10:32 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
Ondayl, А GO есть в скрипте? Если там 350 мегабайт без GO, то понятно, почему медленно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 16:11 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
env И XACT_ABORT в ON стоит или OFF? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 16:13 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
L_argo, авторВ подобных случаях для начала надо знать: - есть ли в целевой таблице триггеры. - есть ли ограничения в полях: непустота, превышение длины/значения, СЦ, несовместимость форматов (н-р даты, булеаны, разделители) - есть ли аномалии в файле: обрывы строк, левые символы, нехватка/смещение полей. Если возможно, зачитайте файл в эксель и поищите проблемы в полях. Проблема может быть в одном единственном месте. Ни тригеров, ни индексов, ничего другого в таблице пока нет. Ограничений так же нет. Данные были выгружены из аналогичной БД абсолютно такой же системы. Про аномалии в файле, тяжело сказать...Скрипты ПО сгенерила. Решил посмотреть профайлером что происходит: вижу странную картину, строчка за строчкой вставляется нормально, потом все останавливается на 4 часа, затем опять как ни в чем не бывало продолжает вставлять опять. Если бы аномалии и были, спустя 4 часа они не могли же испариться. Пока совсем не понимаю как это работает. Скриншот из профайлера. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 11:19 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
env, XACT_ABORT вроде как по умолчанию в OFF. Если да, то в OFF. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 11:26 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
alexeyvg, GO, да, есть, после каждого инсерта. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 11:27 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
Ondayl потом все останавливается на 4 часа alexeyvg А GO есть в скрипте? упд. Уже ответили выше ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 11:27 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
авторупд. Уже ответили выше Про что? Честно говоря не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 11:41 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
Ondayl, Про наличие GO после каждого INSERT. В противном случае серверу надо было бы загрузить и парсить скрипт из файла целиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 11:47 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
Ondayl, SET XACT_ABORT ON; SET NOCOUNT ON; Автокоммит по желанию. Кстати, во время 4-х часовой паузы есть ожидания, связанные с логом? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 11:49 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
env, Статистика ожиданий в прикрепе. Я же правильно понял, что параметры эти на соединение распространяются? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:49 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
Ondayl Статистика ожиданий в прикрепе. Я же правильно понял, что параметры эти на соединение распространяются? где тут на рисунке параметры вообще? картинка отражает статистику ожиданий сервера со времен его последнего рестарта. ни о какой сессии речи нет совсем, ожидания всесерверные. ожидания сессии смотрятся вживую, пока она что-то еще делает, в sys.dm_os_waiting_tasks ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:50 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
а фигасебе у вас TRACEWRITE зашкаливает, профайлер что ли висит? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:51 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
а что нет другого варианта залить данные кроме как так? ну например XML - там за вас все сделано уже ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 17:32 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
Ondayl Решил посмотреть профайлером что происходит: вижу странную картину, строчка за строчкой вставляется нормально, потом все останавливается на 4 часа, затем опять как ни в чем не бывало продолжает вставлять опять. Ondayl GO, да, есть, после каждого инсерта. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 18:32 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
Yasha123 а фигасебе у вас TRACEWRITE зашкаливает, профайлер что ли висит? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 18:34 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
alexeyvg Yasha123 а фигасебе у вас TRACEWRITE зашкаливает, профайлер что ли висит? да у него же все ожидания там. как будто сервер больше ничем и не занимается. наверное, сервеp просто перегрузили сутки назад, тогда еще как-то можно понять... --- хотя вот еще PREEMPTIVE_OS_CREATEFILE, вы там что, файлстримы пишете? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 19:41 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
pahanitto, данные скрипты генерировала программа, для восстановления данных из mdf файла, как бы не прискорбно это не звучало. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 19:55 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
вы видите, что в вашей портянке какой-то бинарник куда-то пишется? посмотрите структуру своей таблицы, файлстрим там? поди ждете создание файлов ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 20:15 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
alexeyvg, понятно, спасибо. Yasha123, авторда у него же все ожидания там. как будто сервер больше ничем и не занимается. наверное, сервеp просто перегрузили сутки назад, тогда еще как-то можно понять... --- хотя вот еще PREEMPTIVE_OS_CREATEFILE, вы там что, файлстримы пишете? В примере скрипта есть что я пишу. Там поля типа image. По поводу ожиданий, смотрю по статье http://sqlcom.ru/waitstats-and-waittypes/wait-stats-day-4/ Выдает 0 записей, сейчас как раз момент того самого "простоя". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 20:17 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
Ondayl В примере скрипта есть что я пишу. Там поля типа image. в скрипте-то есть, только чтобы долистать строку с бинарником до конца, нужно ангельское терпение. можно скрипт таблицы глянуть, в части image. а то вдруг там все же [varbinary](max) FILESTREAM ---- в любом случае, блобы дело жутко тормозное. даже если просто писать их прямо в таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 20:33 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
Ondayl По поводу ожиданий, смотрю по статье http://sqlcom.ru/waitstats-and-waittypes/wait-stats-day-4/ Выдает 0 записей, сейчас как раз момент того самого "простоя". смотрите статус сессии, раз ожиданий нет, видимо она running. пишет бинарник. но 4 часа это все же перебор, даже для блобов. ---- признайтесь, сервер до этого простаивал или просто вчера перегружали? ну не делает он вообще больше ничего, такого же не бывает. а если он действительно занят только вашей загрузкой, то снова вопрос, откуда PREEMPTIVE_OS_CREATEFILE? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 20:38 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
Yasha123 Ondayl В примере скрипта есть что я пишу. Там поля типа image. в скрипте-то есть, только чтобы долистать строку с бинарником до конца, нужно ангельское терпение. можно скрипт таблицы глянуть, в части image. а то вдруг там все же [varbinary](max) FILESTREAM ---- в любом случае, блобы дело жутко тормозное. даже если просто писать их прямо в таблицу Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 23:02 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
Yasha123 Ondayl По поводу ожиданий, смотрю по статье http://sqlcom.ru/waitstats-and-waittypes/wait-stats-day-4/ Выдает 0 записей, сейчас как раз момент того самого "простоя". смотрите статус сессии, раз ожиданий нет, видимо она running. пишет бинарник. но 4 часа это все же перебор, даже для блобов. ---- признайтесь, сервер до этого простаивал или просто вчера перегружали? ну не делает он вообще больше ничего, такого же не бывает. а если он действительно занят только вашей загрузкой, то снова вопрос, откуда PREEMPTIVE_OS_CREATEFILE? Тут мой косяк, забыл в первом посте написать что статус сессии sleeping в этот момент. авторпризнайтесь, сервер до этого простаивал или просто вчера перегружали? При мне не перезагружали. автора если он действительно занят только вашей загрузкой, то снова вопрос, откуда PREEMPTIVE_OS_CREATEFILE? Вот, даже не знаю. Сброшу статистики сейчас, посмотрим что за ночь будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 23:06 |
|
INSERT в БД, ничего не происходит
|
|||
---|---|---|---|
#18+
ну, 4 дня назад перегружали, как-то уже похоже. но все равно сервер у вас ничего не делает, кроме как трэйс пишет и sqlcmd выполняет, изредка записывая в лог. можно еще вот что сделать: повесить джоб, чтобы раз в минуту писал все, что находит в sys. dm_exec_requests и в другую таблицу из waiting_tasks. и запустить загрузку на ночь. утром проанализировать, что именно выполнялось и чего ждало. кстати, в таблице же identity, проверяйте текущее значение через checkident, стоит оно на месте или идет вперед, и образуются ли дыры. дыры без перезагрузки сервера это доказательство роллбэка... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 00:23 |
|
|
start [/forum/topic.php?all=1&fid=46&tid=1685177]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 294ms |
0 / 0 |