我在服務器中有一些數據庫。這臺服務器有16GB內存,而這個系統只是用作數據庫服務器。SQL Server 2008中的重要進程
過了一會兒,有不同的數據庫我看到大部分的RAM空間(約14GB)使用,如果我使用其他應用程序和重新工作,我不能用我的電腦,它是掛起來的工作。
如何找出哪個數據庫有更多的RAM使用情況,然後,如何找出哪些查詢使這些資源充滿?
我在服務器中有一些數據庫。這臺服務器有16GB內存,而這個系統只是用作數據庫服務器。SQL Server 2008中的重要進程
過了一會兒,有不同的數據庫我看到大部分的RAM空間(約14GB)使用,如果我使用其他應用程序和重新工作,我不能用我的電腦,它是掛起來的工作。
如何找出哪個數據庫有更多的RAM使用情況,然後,如何找出哪些查詢使這些資源充滿?
Sql Profiler是一個用於分析哪些查詢進入數據庫的漂亮工具。
set statistics time on
和
set statistics io on
和
set statistics profile on
統計是,當你找到一個你認爲是慢分析特定查詢的好方法..
待辦事項你不知道哪些查詢是最重的?你應該仔細檢查你的代碼,看看你正在運行什麼類型的循環,子查詢或其他怪異的查詢,並從你認爲重要的地方去做。和SQL Server管理測試這些...
我只是管理系統,我不知道寫的代碼。所以我嘗試使用sql profiler,但命令中沒有明確的答案。一段時間後RAM已滿,無法重新啓動就無法清空! – 2012-04-12 08:33:42
服務器上運行多少個數據庫?併爲哪些應用程序?什麼樣的應用程序,它們的用途有多重? – 2012-04-12 10:16:34
約10個數據庫。應用程序是不同的。基於網絡的Win基礎和大約400個用戶使用它。 – 2012-04-12 11:21:23
有一個在sys.dm_exec_query_stats動態管理表中的一些有用的信息(2005年起)找到哪些查詢正在運行是最密集的IO方面,經過時間等
嘗試運行此例如(見細節上的最後25個運行查詢):
SELECT DISTINCT TOP 25 t.TEXT AS query, s.*
FROM sys.dm_exec_query_stats s
CROSS APPLY sys.Dm_exec_sql_text(s.sql_handle) t
ORDER BY s.last_execution_time DESC
在標題中我寫了SQL2008,我認爲這個查詢可以提供幫助。我需要檢查它。 – 2012-04-12 09:02:49
@HamedR,你是對的 - 我沒有注意到。道歉 - 我編輯了我的答案。 – Bridge 2012-04-12 10:17:27
這是SQL Server的正常行爲 - 除非你限制它,SQL Server將使用所有可用內存的服務器上 - 以加快處理速度。這不是**任何錯誤或問題的跡象 - 完全沒有 - 它是SQL Server盡力做好表現! – 2012-04-12 09:00:13
但它會有興趣知道真正的RAM使用SQL服務器。任務管理器並不真正顯示RAM的實際使用情況。 – YvesR 2012-04-12 10:22:04