2016-08-10 77 views
2

背景:跟蹤SQL Server中緩慢的用戶登錄會話

我們有相似大小和相同模式的數據庫數量。它們都具有相同的設置並放置在同一個實例上。每個人都使用應用程序來訪問和查詢數據庫。在應用程序中,所有連接字符串對於所有數據庫都是相同的(登錄和密碼除外)。當登錄和查詢我們的一個數據庫時,許多用戶遇到明顯的緩慢,但不是其他用戶。

問題:

中的一個數據庫逐漸慢訪問。查詢執行時間也會受到影響,但不會像用戶登錄所花費的時間那麼重要。現在,登錄需要大約50秒。對於所有其他數據庫,登錄時間僅爲4-5秒。

問:

我想有問題的數據庫上的「健康數據庫」正常的登錄會話比較的登錄會話。您能否建議一種方法來監控登錄會話中究竟發生了什麼?我知道如何跟蹤針對特定數據庫運行的查詢,但我不知道要查找什麼使查找緩慢。分析器或擴展事件是否顯示這些信息?有沒有其他方法可以分析用戶等待登錄的時間?

回答

1

您可以使用SQL Server Profiler來跟蹤發送到ddbb每個查詢,並基於用戶名,數據庫名稱等

過濾能力見https://msdn.microsoft.com/en-us/en-en/library/ms175047.aspx

我會採取一個看看ddbb的索引和統計數據,因爲如果維護不好,這些區域可能會減慢你的ddbb。

+0

謝謝奧斯卡獎。它會顯示通過應用程序運行的每個查詢的執行時間嗎? – QWE

+0

@QWE是,無論是開始時間還是結束時間 – Oscar

+2

我可以推薦@Oscar在您的答案中通過名稱來標識某些_events_和_columns_,這對跟蹤有用嗎?例如,選中了「Duration:」,「StartTime」和「EndTime」列的「SQL:BatchCompleted」和「SQL:StmtCompleted」事件。 –