A. 我的電腦不知怎麼了,sql server服務佔用了大量內存,求助處理.
使用兩個伺服器內存選項 min server memory 和 max server memory 重新配置緩沖池中 Microsoft® SQL Server™ 實例所使用的內存量(以 MB 為單位)。
默認情況下,SQL Server 能夠可用系統資源動態改變它的內存需求。min server memory 的默認設置為 0,max server memory 的默認設置為 2147483647。可以為 max server memory 指定的最小內存量為 4 MB。
當 SQL Server 動態使用內存時,它要求系統定期地檢測可用的物理內存數量。SQL Server 根據伺服器活動增大或收縮高速緩沖存儲器,以使可用物理內存保持在 4 MB 到 10 MB 之間。這就避免了 Microsoft Windows NT® 4.0 或 Windows® 2000 換頁。如果有較少可用內存,則 SQL Server 將內存釋放給 Windows NT 或 Windows 2000,後者通常繼續使用可用列表。如果有更多可用內存,則 SQL Server 將內存再提交到高速緩沖存儲器。SQL Server 僅在其工作負荷需要更多的內存時才增加高速緩沖存儲器的內存;處於休眠狀態的伺服器不增大其高速緩沖存儲器。
允許 SQL Server 動態使用內存是推薦使用的配置;然而,可以手工設置內存選項並且可以禁止 SQL Server 動態使用內存的能力。在設置 SQL Server 使用的內存量之前,應確定適當的內存設置,方法是從全部物理內存中減去 Windows NT 4.0 或 Windows 2000 以及 SQL Server 的任何其它實例所需要的內存(以及其它系統使用的內存,如果該計算機不為 SQL Server 專用)。這就是可以分配給 SQL Server 使用的最大內存量。
說明 如果您已經安裝並且運行了全文檢索支持功能(Microsoft 檢索服務,亦即 MSSearch),那麼您必須手工設置 max server memory 選項,為 MSSearch 服務運行預留足夠的內存。max server memory 設置必須與 Windows NT 4.0 虛擬內存大小一起進行調整,以便使得保留給全文檢索的虛擬內存是物理內存的 1.5 倍(不包括計算機中其它服務所需的虛擬內存)。應這樣配置 SQL Server max server memory 選項,使得留有足夠的虛擬內存滿足全文檢索內存需求。全部虛擬內存 -(SQL Server 最大虛擬內存 + 其它服務需要的虛擬內存)>= 1.5 倍物理內存。
手工設置內存選項
手工設置 SQL Server 內存選項有兩種主要方法:
第一種方法,設置 min server memory 和 max server memory 為同一數值。該數值與分配給 SQL Server 的固定內存量相對應。
第二種方法,把 min server memory 和 max server memory 數量設置到一個范圍段內。這種方法在系統或資料庫管理員希望配置 SQL Server 實例,使其適應在同一台計算機上運行的其它應用程序的內存需求時很有用。
min server memory 保證了 SQL Server 實例使用的最小內存量。SQL Server 啟動時不立即分配 min server memory 中所指定的內存量。但是,當內存使用由於客戶端負荷而達到該值後,SQL Server 將無法從已分配的緩沖池中釋放內存,除非減少 min server memory 值。
說明 不保證 SQL Server 分配 min server memory 中所指定的內存量。如果伺服器上的負荷從不需要分配 min server memory 中所指定的內存量,則 SQL Server 將以較少的內存運行。
max server memory 則可防止 SQL Server 使用多於指定數量的內存,這樣剩餘的可用內存可以快速運行其它應用程序。SQL Server 啟動時不立即分配 max server memory 中所指定的內存。內存使用隨 SQL Server 的需要而增長,直到達到 max server memory 中所指定的值。SQL Server 無法超過該內存使用值,除非增加 max server memory 值。
重要 伺服器啟動時,在地址窗口擴展 (AWE) 內存模式下運行的 SQL Server 實例確實分配 max server memory 中所指定的全部內存量。有關 AWE 內存的更多信息,請參見管理 AWE 內存。
在應用程序啟動和 SQL Server 釋放內存之間將有一個較短的時間延遲,使用 max server memory 可以避免該延遲,從而可以提高其它應用程序的性能。僅當與 SQL Server 共享同一台伺服器的新應用程序在啟動時顯示有問題時,才設置 min server memory。最好讓 SQL Server 使用全部可用的內存。
如果手工設置內存選項,應確保適當地設置用於復制的伺服器。如果伺服器是一個遠程分發者或者是一個出版者/分發者的組合,則必須為它分配至少 16 MB 的內存。
理想情況下,在不引起系統交換頁面到磁碟的前提下,應盡可能多地分配內存給 SQL Server。該值因系統不同而有很大差別。例如,在一個 32 MB 系統中,分配 16 MB 給 SQL Server可能是合適的;在一個 64 MB 系統中,則可能適合分配 48 MB。
說明 當增大 SQL Server 內存數量時,應確保有足夠的磁碟空間來容納操作系統虛擬內存的支持文件(Pagefile.sys)。有關虛擬內存支持文件的更多信息,請參見 Windows NT 4.0 和 Windows 2000 文檔。
指定的內存數量必需滿足 SQL Server 的靜態內存(核心開銷、打開的對象、鎖等等)以及數據緩存(亦稱高速緩存)的需要。
如有必要,在系統監視器(在 Windows NT 4.0 中為性能監視器)中使用統計功能幫助調整內存值。應該只有在您添加或減少內存,或者改變系統使用方式時改變這些值。
虛擬內存管理器
Windows NT 4.0 和 Windows 2000 隨時提供一個 4 GB 的虛擬地址空間,其中較低的 2 GB 地址空間對於每個進程是專用的,並可由應用程序使用。較高的 2 GB 地址由系統保留使用。Windows NT Server 企業版為每個 Microsoft Win32® 應用程序提供 4 GB 的虛擬地址空間,其中較低的 3 GB 地址空間是每個進程專用的,並可由應用程序使用。較高的 1 GB 地址由系統保留使用。
4-GB 的地址空間由 Windows NT V虛擬內存管理器(VMM)映射到可用的物理內存空間。取決於硬體平台的支持,可用的物理內存可以高達 4 GB。
Win32 應用程序(如 SQL Server)只能識別虛擬(或稱邏輯)地址,而不是物理地址。在給定的某一時刻一個應用程序使用多少物理內存由可用的物理內存和 VMM所決定。應用程序不能直接控制物理內存。
象 Windows NT 4.0 或 Windows 2000 這樣的虛擬地址系統允許過度提交物理內存,這使虛擬內存和物理內存的比率大於 1:1。因此,較大的程序可以運行在具有不同物理內存配置的計算機上。然而應用比組合平均工作集大得多的虛擬內存可能導致較差的性能。
SQL Server 可以將內存鎖定為工作集。因為內存被鎖定了,當運行其它應用程序時可能出現內存不足的錯誤。如果出現內存不足的錯誤,則可能是分配給 SQL Server 的內存太多。set working set size選項(通過 sp_configure 或 SQL Server 企業管理器設置) 可以使鎖定內存為工作集功能失效。默認情況下,set working set size 選項處於禁用狀態。
手工配置給 SQL Server 多於物理內存數量的虛擬內存會導致性能較低。而且,必須考慮 Windows NT 4.0 或 Windows 2000 操作系統的內存需求(大約 12 MB,因應用程序的開銷而略有不同)。當 SQL Server 的配置參數上調時,系統的開銷可能也會增長,因為 Windows NT 4.0 或 Windows 2000 需要更多的常駐內存來支持附加的線程、頁表等。允許 SQL Server to 動態使用內存可以避免內存相關的性能問題。
min server memory 和 max server memory 是高級選項。如果要使用 sp_configure 系統存儲過程改變該選項,必須把 show advanced options 設置為 1,該選項立即生效(無需停止並重新啟動伺服器)。
B. SQLSERVER 32位伺服器 如何查看是否開啟了PAE
樓主說的其實是有兩個東西,一個是資料庫的AWE模式,可以支持32位系統超過4G的實際定址。你可以在資料庫實例上右鍵,然後屬性,點擊內存(或者Momory),看 USE AWE to allocate more memory(或者是對應的中文,我的是英文版)是否勾選上。
PAE即物理地址擴展,Windows 2003 內存管理器使用 PAE 向程序提供更多的物理內存。程序本身並不知道實際的內存大小。所有的內存管理和 PAE 內存分配都由內存管理器處理,與運行的程序無關。
AWE即地址窗口化擴展,是內存管理器功能的一套應用程序編程介面 (API),它使程序能夠定址更多內存 — 超過標准 32 位定址的 4 GB 內存空間。
對於PAE和AWE要注意的是:PAE即物理地址擴展是Windows 2003 內存管理器的一項功能,也就是說其是基於系統的,而AWE即地址窗口化擴展是一套應用程序編程介面 (API)。
在 Windows Server 2003 中,當伺服器使用熱插拔內存設備時,會自動啟用 PAE。而對於我們普通人來說不可能會使用價格高昂的伺服器機器,必須在 Boot.ini 文件中使用 /PAE 開關來利啟用 PAE。使用大於 4GB 的內存。
以下是一個 Boot.ini 文件的示例,其中已添加了 PAE 開關:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE
一台新伺服器,內存配置有4GB,開機也正確顯示4G,但安裝了WIN2003SP1以後,系統顯示只有3.37G,原以為內存有硬體故障,後經檢查,按如下做。
1.打開系統中的大內存支持(windows)
若要啟用 Windows 2000 Advanced Server 或 Windows 2000 Datacenter Server 支持
大於4GB的物理內存,必須將參數 /pae 添加到 boot.ini 文件中。
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server"
/fastdetect
改為
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server"
/fastdetect /PAE
這個改好後,要重啟系統的
2.啟用鎖定內存頁選項(windows)
啟用鎖定內存頁選項
在"開始"菜單上單擊"運行"子菜單,然後在"打開"框中鍵入"gpedit.msc"。
在"組策略"控制台上,展開"計算機配置",然後展開"Windows 設置"。
展開"安全設置",然後展開"本地策略"。
選擇"用戶許可權分配"復選框。
詳細資料窗格中隨即顯示出策略。
在詳細資料窗格中,雙擊"鎖定內存頁"。
在"本地安全策略設置"對話框中,單擊"添加"按鈕。
在"選擇用戶或組"對話框中,添加有權運行 sqlservr.exe 的帳戶。
3.啟用SQL的AWE
若要啟用 AWE,請將 awe enabled 設置為 1。除非指定了 max server memory 的值,否
則 SQL Server 將保留幾乎所有可用內存,只留下 128 MB 或更少。
如果已成功啟用該選項,則當 SQL Server 2000 實例啟動時,SQL Server 錯誤日誌中將
出現"已啟用地址窗口擴展"這條消息。
awe enabled 是高級選項。如果正在使用 sp_configure 系統存儲過程更改該設置,則只有
當 show advanced options 設置為 1 時才能更改 awe enabled。
code 如下,設定SQL 使用6G的內存
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
sp_configure 'max server memory', 6144
RECONFIGURE
GO
必須重新啟動 SQL Server 2000 實例才能使更改生效。
net stop mssqlserver
net start mssqlserver
這樣,SQL 服務啟動後,就會把6G的內存給鎖定,完全供SQL使用
僅 Windows 2000 Datacenter Server、 Windows 2000 Advanced Server、Windows Server 2003、Enterprise Edition 和 Windows Server 2003 Datacenter Edition 支持 PAE。 在 32 位 Windows 中,默認情況下將禁 用 PAE,並且必須在 BOOT.INI 文件中設置 /pae 引導參數才可啟用 PAE
為什麼要這樣做呢,因為32位的系統只能定址到4G的內存空間,通過修改BOOT文件 可以把其餘內存做為可擴展物理內存 但是如果自己內存剛好為4G的話 就不建議修改了 效果不是很理想
硬體支持最大的內存容量可以這么算:支持最大內存容量=2的N次方位。
32位硬體支持的最大內存容量換算下來就是2的32次方,換算下來就是4G,64位硬體支持的最大內存容量是2的64次方,換算下來就是16EB=16*1024PB=16*1024*1024TB=16*1024*1024*1024GB。
C. sql如何開啟awe
為 SQL Server 啟用 AWE 內存
SQL Server 2008 R2 其他版本 SQL Server 2008 SQL Server 2005
2(共 3)對本文的評價是有幫助 - 評價此主題
下一版本的 Microsoft SQL Server 將刪除該功能。請不要在新的開發工作中使用該功能,並盡快修改當前還在使用該功能的應用程序。
地址窗口化擴展插件 (AWE) 可以使 32 位操作系統訪問大量內存。AWE 由操作系統公開,並且在 Microsoft Windows 2000 Server 和 Windows Server 2003 中的實現方式稍有不同。AWE 是使用 awe enabled 選項啟用的。
D. sql server 2008 r2 啟用awe後 內存的管理
會自動釋放的。內存緩存一些查詢,tempdb,存儲等。不是把所有數據放到內存裡面。你才10G,那100G,1T的怎麼辦。這涉及SQL內存管理方面。我也是粗淺的了解了一點。
E. SQL代理無法啟動怎麼辦
【處理方法】
一、配置環境
伺服器環境為32位Intel® Xeon® CPU E54410 @2.33GHz雙路雙核開啟超線程,8.00GB的內存,RAID10。
1.根據最小許可權原則,安裝完資料庫及SP3補丁後,建立Users組用戶SqlStartUser。
2.通過SQL Server配置管理器配置啟用TCP/IP協議,IPALL的TCP埠改為32959。SQL Server(MSSQLSERVER)和SQL Server Agent(MSSQLSERVER)的服務啟動賬號為SqlStartUser。
3.本地安全設置->本地策略->用戶許可權分配->內存中鎖定頁面添加SqlStartUser。
4.勾選使用AWE分配內存。最小伺服器內存(MB)5500,最大伺服器內存(MB)7200,其他留給操作系統。
二、檢查步驟
1.檢查本地賬號SqlStartUser隸屬於哪幾個組:本地Windows組之Users組;本地Windows組之SQL Server服務賬戶組SQLServer2005MSSQLUser$DBSRV1$MSSQLSERVER;本地Windows組之SQL Server服務賬戶組SQLServer2005SQLAgentUser$DBSRV1$MSSQLSERVER。
2.檢查資料庫登錄名是否有DBSRV1SqlStartUser。
3.檢查事件查看器應用程序有關服務啟動的過程信息。
三、類型來源 描述
①審核成功MSSQLSERVER用戶 'DBSRV1 SqlStartUser' 登錄成功。連接: trusted. [客戶端: <local machine>]
②信息MSSQLSERVER配置選項 'show advanced options' 已從 1 更改為 1。請運行 RECONFIGURE 語句進行安裝。
③信息MSSQLSERVERSQL Server 阻止了對組件 'Agent XPs' 的 過程'dbo.sp_sqlagent_has_server_access' 的訪問,因為此組件已作為此伺服器安全配置的一部分而被關閉。系統管理員可以通過使用 sp_configure 啟用 'Agent XPs'。有關啟用 'Agent XPs' 的詳細信息,請參閱 SQL Server 聯機叢書中的 "外圍應用配置器"。
④信息MSSQLSERVERSQL Server 阻止了對組件 'Agent XPs' 的 過程'dbo.sp_sqlagent_get_startup_info' 的訪問......
⑤錯誤MSSQLSERVERSQLServerAgent could not be started (reason: SQLServerAgent 必須能夠以 SysAdmin 身份連接到 SQLServer,但「(未知)」不是 SysAdmin 角色的成員)。
F. sql server awe怎麼設置
由於32位Windows用戶進程有4GB的虛擬地址空間。其中2GB給核心態,剩下2GB給用戶態。這兩部分嚴格分開。Windows不會因為其中某一塊
內存地址空間用盡而將另外一塊的空間讓出。
由於SQLSERVER的絕大部分指令都運行在用戶態下,就是說SQLSERVER的內存基本上使用用戶態地址空間資源。現在的情況是2GB地址空間資源
對於SQLSERVER來說嚴重阻礙了SQLSERVER有效利用硬體資源
所以SQLSERVER引入了AWE address windowsing extensions(地址空間擴展)。這是允許32位應用程序分配64GB物理內存,並把視圖或窗口
映射到2GB虛擬地址空間的機制。
使用AWE,使得一個應用程序能夠訪問最多達64GB的物理內存!!!
在SQL2000的企業版,SQL2005/2008的企業版和標准版都支持這個技術,也能夠享受這個技術帶來的好處
開啟這個功能的語句,執行完之後,重啟SQLSERVER服務即可
1 EXEC sys.sp_configure @configname = 'AWE Enabled', -- varchar(35)
2 @configvalue = 1 -- int
3 RECONFIGURE
4 GO
AWE具體實現圖
有幾點需要注意的:
(1)開啟這個功能需要SQLSERVER啟動帳戶在Windows上的lock pages in memory許可權。沒有這個許可權,AWE就不能成功被開啟。
啟動的SQLSERVER這時候只能使用2GB的地址空間。
所以DBA要確認一下SQLSERVER的errorlog里有沒有相關的信息
成功開啟:server Address Windowing Extensions enabled
消息
Address Windowing Extensions is enabled. This is an informational message only; no user action is required.
開啟失敗:Cannot use Address Windowing Extensions because lock memory privilege was not granted
(2)這個功能是在應用層面有意識地使用,而不是在Windows層面實施的。也就是說SQLSERVER在申請內存時,通過特殊API調用申請到的,
如果SQLSERVER不調用這個功能,就還會在普通的2GB虛擬地址空間申請內存。在SQLSERVER中不是所有的內存申請都會調用AWE技術,
只有先reserve,再commit的內存調用,SQLSERVER才使用AWE讓他們使用到擴展的內存。其他方式申請的內存只能使用普通的2GB地址空間。
正因為這樣,AWE不能稱為解決SQLSERVER地址空間不足的最終解決方案。使用64位的伺服器,虛擬地址空間可以達到8TB,
大於現在絕大多數的單個伺服器的物理內存數。在64位下運行的SQLSERVER,其性能往往比在32位上有比較明顯的提高。
最後附上各個版本Windows上支持的最大內存數
配置 應用虛擬地址空間大小 最大物理內存數 是否支持AWE/locked pages support
32位SQLSERVER 2GB 64GB YES
32位SQLSERVER + /3GB boot.ini參數 3GB 16GB YES
32位SQLSERVER 應用在x64位操作系統(WOW) 4GB 64GB YES
32位SQLSERVER 應用在IA64操作系統(WOW) 2GB 2GB NO
64位SQLSERVER 應用在x64操作系統 8TB 2TB YES
64位SQLSERVER 應用在IA64操作系統 7TB 2TB YES
G. win 2003 sp2 sql server 2000 sp4 4G內存 下如何使sql使用盡可能多的內存
在SqlServer的企業管理器中把內存的大小設置一下就行了
H. SQL Server佔用內存過高,什麼原因導致的,用什麼方法可以解決
SQL Server運行越久,佔用內存會越來越大。因為sql server本身內存回收機製做的不好,這是微軟系列的伺服器&資料庫問題的通病。
解決SQL Server佔用內存過高的方法:
1.定期重啟SQL Server 2008 R2資料庫服務即可。
拓展資料
SQL Server 是Microsoft 公司推出的關系型資料庫管理系統。具有使用方便可伸縮性好與相關軟體集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2012 的大型多處理器的伺服器等多種平台使用。
Microsoft SQL Server 是一個全面的資料庫平台,使用集成的商業智能 (BI)工具提供了企業級的數據管理。Microsoft SQL Server 資料庫引擎為關系型數據和結構化數據提供了更安全可靠的存儲功能,使您可以構建和管理用於業務的高可用和高性能的數據應用程序。
網路Microsoft SQL Server