Могу ли я убить этот процесс?
Возможный дубликат:
Проблемы с монитором активности в SQL Server 2005
У меня на сервере базы данных запущены некоторые процессы, которые занимают огромное количество процессоров. Когда я просматриваю детали процесса, я получаю:
set transaction isolation level read committed
Другие детали включают в себя:
- Статус: Спящий
- Открытые транзакции: 0
- Команда: Ожидание команды
- Время входа: 12+ часов назад
- Последняя партия: Менее 2 минут назад
В последнее время я не наблюдал за монитором активности, но когда я получил сообщение от администраторов своего сервера о том, что ЦП работает почти на 100%, а SQL Server набрал большинство, мне стало очень любопытно. Эта команда исходит из разных (веб) приложений, но никто из них не использует этот код. Некоторые из них написаны на Coldfusion, а другие - на.NET.
Эта команда генерируется SQL Server?
Что вызывает это?
Безопасно ли убивать эти процессы?
3 ответа
Ответ на ваш предыдущий вопрос по- прежнему применим:
Нет, SQL не будет выполнять операторы самостоятельно. Эти заявления приходят из веб-приложений. Они могут не существовать явно как текст SqlCommand в вашем приложении, но между вашим кодом и тем, что фактически достигает SQL Server, есть несколько десятков тысяч строк кода из различных фреймов и ORM. Тривиальным примером является benq SqlConnection.Open(), который отправляет довольно здоровенный пакет для инициализации настроек сеанса, пакет, который заканчивается установленным уровнем изоляции транзакции для чтения совершенного...
Сможете ли вы их убить или нет, невозможно сказать, поскольку они являются вашими приложениями.
Можете ли вы предоставить нам больше информации?
Эта команда устанавливает уровень изоляции только для транзакции, считываемой переданной, и не является причиной проблемы.
Я предлагаю вам попробовать SQL Profiler, чтобы определить причину. Будьте внимательны при настройке фильтров на случай, если они получат большое количество транзакций.
Согласитесь с Ремусом Русану, но просто для уточнения вашего точного вопроса: "установить уровень изоляции транзакции для чтения зафиксирован" - это не "процесс". это утверждение, которое определяет, как будут обрабатываться утверждения, поступающие из вашего приложения.
Это говорит о том, что запросы выполняются как часть вашего сеанса (в случае ColdFusion любой конкретный cfquery, если они не находятся внутри cftransaction) будет только читать зафиксированные данные. Вы, вероятно, заметите, что если вы используете cftransaction, вы увидите другой уровень изоляции транзакции, который позволит запросам читать локальные незафиксированные данные.