У меня есть приложение на основе C#, которое выполняет различные операции с экземпляром базы данных на базе SQL Server 2008 R2.Мониторинг производительности и нагрузки SQL
Это сценарий:
- Существует один экземпляр SQL.
- Существует несколько баз данных (около 50).
- Приложение выполняет различные операции, включая операции ввода-вывода и ЦП (на сервере SQL).
- Код является многопоточным, что означает, что несколько потоков обращаются к экземпляру SQL одновременно.
- SQL-сервер не является на том же компьютере, что и сервер приложений.
Теперь у меня проблема с тем, что SQL становится узким местом (как IO, так и CPU), и я бы хотел, чтобы у него была проверка процесса, если SQL «слишком занят», прежде чем он начнет новый процесс, и если он слишком занят, отложите процесс на некоторое время и снова проверьте его позже.
Можно получить с помощью простого/базового SQL-запроса информацию о текущей загрузке экземпляра SQL? Загрузка процессора как процент использования? IO загружается как очередь диска r/w?
Любая помощь будет оценена по достоинству.
Gilad.
Вы использовали SQL Profiler для определения того, что вызывает узкое место? Возможно, лучше оптимизировать работу, которую выполняет сервер, чем управлять загрузкой из вашего приложения. – Tony