|
|
|
UPDATE 12 секунд
|
|||
|---|---|---|---|
|
#18+
Extremist, автор SELECT WITH (NOLOCK) везде, пока хватает глаз везде не точил. вас не спасти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 18:38:33 |
|
||
|
UPDATE 12 секунд
|
|||
|---|---|---|---|
|
#18+
TaPaK, у меня мысль сводиться к идеи, что update происходит немного дольше чем таймаут для процедуры. Даже если я поставлю другую- менее запрашиваемую таблицу, по моему, решит проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 18:47:23 |
|
||
|
UPDATE 12 секунд
|
|||
|---|---|---|---|
|
#18+
TaPaK, кстати тот же update в любом другом месте работает на ура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 18:51:18 |
|
||
|
UPDATE 12 секунд
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 19:04:51 |
|
||
|
UPDATE 12 секунд
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 19:34:27 |
|
||
|
UPDATE 12 секунд
|
|||
|---|---|---|---|
|
#18+
Extremist, Откуда у вас эта процедура запускается? Запись в лог перед update проходит? Если поднять таймаут, Что-нибудь меняется? Может делать синхронно? Писать апдэйты в табличку сбоку, и обрабатывать их каким-нибудь брокером? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 00:34:11 |
|
||
|
UPDATE 12 секунд
|
|||
|---|---|---|---|
|
#18+
Extremist, Добавьте RAISERROR в вашу процедуру на которой якобы все останавливается. Если ваше приложение НЕ словит ошибку, то оторвите руки программисту ищете где ошибка подавляется, иначе это гадание какое-то. Плюс доверия вашей системе никакого, может у вас еще что-то где то падает или упадет, а вы даже об этом не узнаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 00:47:49 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1690679]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 185ms |
| total: | 480ms |

| 0 / 0 |
