我需要確定特定的應用程序是否從SQL Server 2005作業運行。問題是我們用來發送數據的一個應用程序將掛起,導致調用它的任何後續作業出現問題。如果我也可以獲得CPU時間,那麼我可以確定它是否可能是一個掛起的進程。確定特定的Windows應用程序是否使用SQL Server 2005運行
正在運行的應用程序的列表是好的,但能夠查找特定的可執行文件名稱與CPU時間將是太棒了!
我需要確定特定的應用程序是否從SQL Server 2005作業運行。問題是我們用來發送數據的一個應用程序將掛起,導致調用它的任何後續作業出現問題。如果我也可以獲得CPU時間,那麼我可以確定它是否可能是一個掛起的進程。確定特定的Windows應用程序是否使用SQL Server 2005運行
正在運行的應用程序的列表是好的,但能夠查找特定的可執行文件名稱與CPU時間將是太棒了!
我認爲最好的方法是運行SQL Server Profiler以及性能監視器並等待指定的作業運行。然後將perfmon統計信息導入分析器。您可以通過轉到文件 - >導入性能數據...並將其指向性能監視器日誌,從SQL Server分析器執行此操作。
您應該能夠選擇Process(all)
計數器,爲您提供所有正在運行的進程的列表,以及獲取進程的CPU時間。然後,您可以將它與Profiler日誌中的application name
和/或hostname
關聯起來,以瞭解發生了什麼。
嘗試打開SQL Server活動監視器。您還可以從存儲的proc sp_who2中獲取一些信息。
讓作業運行外部腳本(批處理文件,KSH腳本)而不是TSQL腳本。
由作業步驟啓動的任何應用程序將顯示爲由與SQL Server代理程序相同的登錄帳戶運行。爲不會用於任何其他服務的SQL Server代理使用特定的服務帳戶。這可以讓你監視使用任務管理器,性能監視器等工作啓動的應用程序。
我使用(免費)替換任務管理器「Process Explorer」來更好地查看exe和它們的依賴關係。
可能值得用這個來監視你的問題。
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
在後臺持續運行探查器來檢測,這不是在生產環境內一個有效的解決方案。 – 2009-01-09 14:26:49
如果您可以足夠好地在探查器上使用過濾器,那麼負載對於服務器來說不是那麼重要。您還可以在指向生產SQL Server的另一臺服務器上運行分析器,以進一步減輕負載。 – 2009-01-09 14:40:03