У меня есть база данных с двумя таблицами, которые заполнены данными из параллельных процессов, выполняющих вставку данных с использованием хранимых процедур. Сервер sql практически использует всю физическую память, и я заметил, что в некоторых таблицах отсутствовали данные, и при отладке я обнаружил, что из-за ошибок тайм-аута данные не вставлялись, поскольку я не учел это. Кто-то сказал мне, чтобы запустить exec who2 и, глядя на все транзакции, связанные с этим приложением, выглядит следующим образом
spid status login hostname blkby dbname command ......
738 sleeping sa R120 . FeedsRS AWAITING COMMAND
739 sleeping sa R120 . FeedsRS AWAITING COMMAND
740 sleeping sa R120 . FeedsRS AWAITING COMMAND
Сейчас их около 800, и я не уверен, что это значит. Если транзакции заблокированы, есть ли способ завершить их без проблем с данными, в то время как я добавляю код для обработки ошибок тайм-аута. Я даже не уверен, что это проблема, но я должен также установить разумное время ожидания блокировки вместо 0 по умолчанию.
Любые идеи приветствуются.