|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Сразу скажу, я не знаток в шарпе, есть тестовый вариант кода Код: c# 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.
выгребаются фотки из базы и создается на их основе превью. Жопа в том, что команда qUpdate.ExecuteNonQuery(); вываливается по таймауту с сообщением авторTimeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding При этом, если я в селекте ограничу выборку Top 1. то все проходит "на ура". При этом таблица точно не лочится, так как я имею к ней доступ и могу свободно работать во время выполнtния update ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 10:37 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
ther, Удерживать открытое соединение с базой слишком долго, это плохая идея в случае c web. Как вариант, можно проводить работу с изображениями обдельно от работы с базой, затем передать список изменений для update. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 10:57 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
ther Код: c# 1.
а с какой целью закомментирована строчка? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 10:58 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
therПри этом, если я в селекте ограничу выборку Top 1.копайте дальше. Сколько записей? Миллион? Время таймаута реальное? Время апдейта необходимое? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:05 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
therПри этом таблица точно не лочится, так как я имею к ней доступ и могу свободно работать во время выполнtния update Уверены? Что значит работать? SELECT накладывает shared lock, что позволяет другим транзакциям читать из таблицы, но не изменять. Так что работать Вы можете, а вот UPDATE не пройдёт. Смотрите какого типа блокировки и на какие объекты (строки, таблицы, индексы) наложены. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:25 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
ther, для простоты сначала считайте в словарь Dictionary<string, byte[]> данные из RPF_ID, RPF_Photo. Закройте reader (dr = query.ExecuteReader()). А после этого в цикле делайте Resize и UPDATE. А вообще предлагаю Вам готовить preview сразу при загрузке фотографии. И разом вставлять и в RPF_Photo, и RPF_Preview. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:29 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Можно легко проверить - поставить в селекте хинт WITH (NOLOCK) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:36 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Petro123Сколько записей? Миллион?Петя как всегда не читатель. Обновление идет только для одной записи ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:37 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Дмитрий Мухдля простоты сначала считайте в словарь Dictionary<string, byte[]>А если там несколько сотен фоток? У него память лопнет. Да и не дождется перекачки на клиента. Можно просто прочитать все ID-шники картинок в List, потом по одной дергать картинки из базы, закрывая ридер. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:39 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Пасиб на идеи. Фотки тянутся из другой базы в полном размере (база->база), там не было необходимости их сжимать. Дмитрий Мух Пасиб, попробую через дикт ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:44 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Shocker.ProДмитрий Мухдля простоты сначала считайте в словарь Dictionary<string, byte[]>А если там несколько сотен фоток? У него память лопнет. В коде я вижу select top 3 И я же пишу, сначала, для простоты. Чтобы он убедился в блокировках. Так ведь не поверит Да и с чего память на нескольких сотнях лопнет? Фотка 2-3 MB, несколько сотен - это 400-600 MB. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:45 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Shocker.ProPetro123Сколько записей? Миллион?Петя как всегда не читатель. Обновление идет только для одной записиторопыга, для одной записи у него работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:45 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Дмитрий МухВ коде я вижу select top 3 экспериментальное, по всей видимостиtherесли я в селекте ограничу выборку Top 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:46 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Petro123для одной записи у него работает.ты не почитал код. Падает на апдейте, а про одну запись он говорит при выборке. Мух, скорее всего, прав, но, думаю, самое простое поставить NOLOCK и вряд ли придется менять что-то еще ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:47 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
therФотки тянутся из другой базы в полном размере (база->база), там не было необходимости их сжимать. Дмитрий Мух Пасиб, попробую через дикт В той базе нет необходимости, а в этой есть. Я вам предлагаю перед тем, как вставить в Эту базу и выполнить Resize. И вставить в таблицу Ref_PersonPhoto разом и RPF_Photo, и RPF_Preview. Это сложно? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:48 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Я в цикле буду выбирать по 10-100 штук(еще не решил) загонять в дикт и обрабатывать ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:50 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Shocker.Proсамое простое поставить NOLOCK и вряд ли придется менять что-то еще Вариант конечно. Но чем он аукнется? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:51 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
да, сначала попробую NOLOCK , если не выйдет, гляну на дикт. Спасибо еще раз ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:52 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Дмитрий Мух по идее ничем, это не критичная таблица и ее никто, кроме сервака не обрабатывает. Усер туда не лезет ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:53 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Shocker.ProПадает на апдейте, а про одну запись он говорит при выборке.это не отменяет знание анализов у врача) - сколько висит апдейт и нужен ли промежуточный коммит для базы. Но ты мешаешь ТСу отвечать на простые вопросы мемберов. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:54 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Дмитрий МухВариант конечно. Но чем он аукнется?По идее ничем - цикл ведь идет только вперед, он не будет дергать повторно только что измененную запись. А если ошибка вылезет, то она вылезет сразу. Код: sql 1.
тоже вариант, никаких словарей, в общем-то и не надо ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:55 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Shocker.Proтоже вариант, никаких словарей, в общем-то и не надоой, ну то есть - надо для этих 10-100-1000 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:56 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Никаких блокировок там нет. А нужен ли пакетный режим решается индивидуально. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 12:02 |
|
SqlCommand Select и Update в циклеTimeout expired.
|
|||
---|---|---|---|
#18+
Petro123Никаких блокировок там нетSelect без Nolock - это уже блокировка. Тебе уже сказалиДмитрий МухSELECT накладывает shared lockа, ну да, для тебя авторитетов не существует. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 12:15 |
|
|
start [/forum/topic.php?fid=18&msg=39724384&tid=1355101]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
132ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 251ms |
0 / 0 |