2009-08-17 83 views
22

我正在調試我的一個應用程序,並注意到我的SQL Server 2005 x64框(在Windows 2003 R2 x64上運行)上的RAM被掛起,甚至進入分頁文件。我知道SQL Server 2005 x64只是抓住了一切,所以這可能是正常的(???)。我如何檢查它實際使用的內存量?SQL Server實際使用多少內存?

+1

這不是一個ServerFault問題嗎? – 2009-08-17 18:53:32

+0

select * from sys.dm_os_process_memory – user1005462 2016-07-08 11:55:04

回答

22

您需要運行Perfmon(開始 - >控制面板 - >管理工具 - >性能)。你想要的計數器,我相信,是在SQL Server:內存管理器。目標服務器內存是多少,如果需要可以採取,總服務器內存是目前使用多少。如果你點擊解釋,它會彈出一個包含詳細信息的框。

默認情況下,它是不封頂的,並應使用所有,但幾個GB的內存(離開,對於OS)。但是,有各種各樣的錯誤和內存泄漏可能導致它進入分頁。

+0

你指的是什麼錯誤? SQL可能需要分頁的原因有很多,一個是如果服務器缺少物理內存(RAM)。如果沒有可用的RAM,SQL只能使用該磁盤。 – 2012-01-18 21:34:40

+0

dbcc memorystatus – 2013-01-31 14:51:49

+1

所有這些對我來說都是顯示一個連續不斷的'100',這是不可能的。 – 2014-12-10 00:58:35

-4
  1. 開始 - >運行 - >性能監視器
  2. 看櫃檯的不計其數的SQL Server安裝
+8

downvote,因爲有太多與計算機無關的sql perf計數器,並且看着「無窮無盡」無法回答這個問題。 – Brian 2011-07-22 21:01:05

+0

這仍然是一個很好的提示。 – Mariusz 2015-10-05 12:13:49

2

您應該探索的SQL Server \內存管理器性能計數器。

9

關係到你的問題,你可能要考慮限制,如果你是在一個共享的環境中使用,即,承載的不僅僅是SQL Server的更多的服務器上RAM的SQL Server量訪問:

  1. 開始>所有程序> Microsoft SQL Server 2005:SQL Server Management Studio。
  2. 使用任何具有管理權限的帳戶進行連接。
  3. 右鍵單擊數據庫>屬性。
  4. 從左側窗格中選擇「內存」,然後將「服務器內存選項」更改爲您感覺應該分配給SQL Server的任何內容。

這將有助於從消耗服務器上所有的RAM緩解的SQL Server。

0

轉到管理工作室和運行sp_helpdb <db_name>,它會給指定數據庫詳細的磁盤使用情況。不帶任何參數值運行它將列出實例中所有數據庫的高級信息。

+2

問題是關於內存(RAM)使用情況,而不是磁盤使用情況。 – Mike 2015-02-12 04:18:23

-2

最簡單的方法,看看內存的使用,如果您有RDP訪問/控制檯訪問將只需啓動任務管理器 - 點擊流程 - 顯示進程從所有用戶中,排序RAM - 這會給你SQL的使用。

正如上面提到的,以減少大小(這將立即生效,無需重新啓動)啓動SQL Management Studio中,單擊服務器,屬性 - 內存和減小max。沒有完美的數字,但要確保服務器有免費的其他任務。

約perfmon的答案是正確的,應當使用,但它們都不如任務管理器恕我直言爲明顯的方法。

+0

這不起作用..它顯示300 Mb,但如果重新啓動SQL服務器,我得到8GB更多的空閒內存 – Peter 2011-11-23 16:23:09

+0

您是否有CLR例程?那些可以使用ram並在sql停止時釋放。 – 2012-07-15 07:15:51

+0

不,我們沒有使用clr例程.. – Peter 2012-07-15 10:13:06