Я действительно с чем-то борюсь, и я надеялся, что смогу получить совет или кто-нибудь сможет указать мне в правильном направлении.
У меня есть программа, которая обрабатывает записи одновременно, и происходит большая активность базы данных SQL Server. Возникают взаимоблокировки, и когда они выдают ошибки в коде, это нормально, транзакции откатываются, а состояние базы данных является согласованным.
Я видел частично зафиксированные данные в базу данных для нескольких объектов из нескольких тысяч, которые были обработаны. После многочисленных исследований и возможного сравнения результатов SQL Server Profiler с зарегистрированными ошибками я заметил, что некоторые взаимоблокировки появлялись в SQL Server Profiler, но не отображались в коде.
В этих сценариях SqlCommand выполняется в соединении, указанном в CommittableTransaction. При вызове ExecuteReader() возникает взаимоблокировка, но это не выдается как ошибка в коде, я вижу это только в SQL Server Profiler.
Что происходит Далее, транзакция откатывается, но из-за отсутствия ошибок в коде, поэтому данные, которые были обработаны до этой точки, корректно возвращаются, но остальная часть SQL выполняется успешно и немедленно фиксируется в базе данных.< /p>
Код по-прежнему считает, что находится в транзакции, и только когда вызывается Commit, он регистрирует, что транзакция была прервана. Я не могу найти способ успешно проверить код, включено ли соединение в транзакцию в этих сценариях, поскольку это выглядит как несогласованность между .NET и SQL Server после необнаруженной взаимоблокировки.
Есть ли у кого-нибудь опыт работы с подобными сценариями или какой-нибудь совет для меня?
Подробнее здесь: https://stackoverflow.com/questions/787 ... sqlcommand
Взаимные блокировки SQL .NET (случайно) не обнаруживаются SqlCommand ⇐ C#
Место общения программистов C#
1721060871
Anonymous
Я действительно с чем-то борюсь, и я надеялся, что смогу получить совет или кто-нибудь сможет указать мне в правильном направлении.
У меня есть программа, которая обрабатывает записи одновременно, и происходит большая активность базы данных SQL Server. Возникают взаимоблокировки, и когда они выдают ошибки в коде, это нормально, транзакции откатываются, а состояние базы данных является согласованным.
Я видел частично зафиксированные данные в базу данных для нескольких объектов из нескольких тысяч, которые были обработаны. После многочисленных исследований и возможного сравнения результатов SQL Server Profiler с зарегистрированными ошибками я заметил, что некоторые взаимоблокировки появлялись в SQL Server Profiler, но не отображались в коде.
В этих сценариях SqlCommand выполняется в соединении, указанном в CommittableTransaction. При вызове ExecuteReader() возникает взаимоблокировка, но это не выдается как ошибка в коде, я вижу это только в SQL Server Profiler.
Что происходит Далее, транзакция откатывается, но из-за отсутствия ошибок в коде, поэтому данные, которые были обработаны до этой точки, корректно возвращаются, но остальная часть SQL выполняется успешно и немедленно фиксируется в базе данных.< /p>
Код по-прежнему считает, что находится в транзакции, и только когда вызывается Commit, он регистрирует, что транзакция была прервана. Я не могу найти способ успешно проверить код, включено ли соединение в транзакцию в этих сценариях, поскольку это выглядит как несогласованность между .NET и SQL Server после необнаруженной взаимоблокировки.
Есть ли у кого-нибудь опыт работы с подобными сценариями или какой-нибудь совет для меня?
Подробнее здесь: [url]https://stackoverflow.com/questions/78748521/net-sql-deadlocks-randomly-not-picked-up-by-sqlcommand[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия