powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / UPDATE 12 секунд
7 сообщений из 32, страница 2 из 2
UPDATE 12 секунд
    #39569225
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Extremist,

автор SELECT WITH (NOLOCK) везде, пока хватает глаз везде не точил. вас не спасти
...
Рейтинг: 0 / 0
UPDATE 12 секунд
    #39569227
Фотография Extremist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

у меня мысль сводиться к идеи, что update происходит немного дольше чем таймаут для процедуры.
Даже если я поставлю другую- менее запрашиваемую таблицу, по моему, решит проблему.
...
Рейтинг: 0 / 0
UPDATE 12 секунд
    #39569228
Фотография Extremist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,
кстати тот же update в любом другом месте работает на ура.
...
Рейтинг: 0 / 0
UPDATE 12 секунд
    #39569230
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ExtremistTaPaK,
кстати тот же update в любом другом месте работает на ура.
В порядке полного бреда:

Потому что у Вас ASP.NET + MARS = true и update идет на вновь созданный id.

Вот этим "UPDATE account SET transaction_id = @transaction_id, amount_open = @amount_open WHERE user_id = @user_id " Вы только всех запутали.
В реальности делая "UPDATE account SET transaction_id = @transaction_id, amount_open = @amount_open, amount_freez=@amount_freez WHERE id = @some_id ", нужно убедиться, что insert, создавший запись с новым id, виден запросу update.

А он проходит нормально, потому что апдейтить нечего.
Ну а далее у Вас в процедуре где-то явно задано использовать что-то из только-что "проапдейченной" записи, которой еще нет. И все падает.

Ловите профайлером insert и update. Когда поймаете попытку сделать update по несуществующему id - поднимайтесь вверх и смотрите, кто и когда сделал insert с таким id.
...
Рейтинг: 0 / 0
UPDATE 12 секунд
    #39569239
Фотография Extremist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andy_OLAPПотому что у Вас ASP.NET + MARS = true и update идет на вновь созданный id.

Вот этим "UPDATE account SET transaction_id = @transaction_id, amount_open = @amount_open WHERE user_id = @user_id " Вы только всех запутали.
В реальности делая "UPDATE account SET transaction_id = @transaction_id, amount_open = @amount_open, amount_freez=@amount_freez WHERE id = @some_id ", нужно убедиться, что insert, создавший запись с новым id, виден запросу update.

А он проходит нормально, потому что апдейтить нечего.
Ну а далее у Вас в процедуре где-то явно задано использовать что-то из только-что "проапдейченной" записи, которой еще нет. И все падает.

Ловите профайлером insert и update. Когда поймаете попытку сделать update по несуществующему id - поднимайтесь вверх и смотрите, кто и когда сделал insert с таким id.


Жаль что у меня не ASP.NET

Andy_OLAPВ реальности делая "UPDATE account SET transaction_id = @transaction_id, amount_open = @amount_open, amount_freez=@amount_freez WHERE id = @some_id ", нужно убедиться, что insert, создавший запись с новым id, виден запросу update.
insert не было, но id, виден запросу update - не подскажете как это проверить?

Andy_OLAPА он проходит нормально, потому что апдейтить нечего.

это объясняет отсутствие ошибки в логах, но не объяснять причину НЕ продолжения процедуры.
Апдейт стоит в конце и дальше только запись в лог "начисление произошло", без каких либо указателей на предыдущий апдейт, а записи нет

Andy_OLAPЛовите профайлером insert и update. Когда поймаете попытку сделать update по несуществующему id - поднимайтесь вверх и смотрите, кто и когда сделал insert с таким id.

Спасибо за совет, приблизительно это сейчас и делаю
и да, начитался что иногда не находит из за неверного типа данных
поставил принудительное приведение...
Код: sql
1.
UPDATE [account] SET transaction_id = CAST(@transaction_id AS int), amount_open= CAST(@amount_open AS int), amount_freez = CAST(@amount_freez AS int) WHERE id = CAST(@some_id AS int)
...
Рейтинг: 0 / 0
UPDATE 12 секунд
    #39569321
Шыфл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Extremist,

Откуда у вас эта процедура запускается? Запись в лог перед update проходит? Если поднять таймаут, Что-нибудь меняется?
Может делать синхронно? Писать апдэйты в табличку сбоку, и обрабатывать их каким-нибудь брокером?
...
Рейтинг: 0 / 0
UPDATE 12 секунд
    #39569325
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Extremist,

Добавьте RAISERROR в вашу процедуру на которой якобы все останавливается. Если ваше приложение НЕ словит ошибку, то оторвите руки программисту ищете где ошибка подавляется, иначе это гадание какое-то. Плюс доверия вашей системе никакого, может у вас еще что-то где то падает или упадет, а вы даже об этом не узнаете.
...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / UPDATE 12 секунд
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]