導航:首頁 > 廢水知識 > 伺服器提升sqlserver專用內存

伺服器提升sqlserver專用內存

發布時間:2021-12-01 00:51:51

❶ sql server 屬性配置最大內存設為多少合適

SQL Server 使用內存有兩種情況:

第一種情況: 動態改變它的內存需求。
默認情況下,SQL Server 會依據可獲得的系統資源動態改變它的內存需求。如果 SQL Server 需要更多的內存,它會要求操作系統確定是否有空閑的物理內存可用,並使用可用的內存。若 SQL Server 不再需要當前分配給它的內存,它就將內存釋放給操作系統。當 SQL Server 動態使用內存時,它要求系統定期地檢測可用的物理內存數量。SQL Server 根據伺服器活動增大或收縮高速緩沖存儲器,以使可用物理內存保持在 4 MB 到 10 MB 之間。這就避免了系統進行換頁操作。
[也就是說,這種情況下SQL SERVER 本身不會使物理可用內存小於4M,如果比較長的時間內都小於4M的話,則要看一下是不是該伺服器上其它應用程序有問題]

第二種情況:限制使用內存
使用 set working set size 為sql server保留等於伺服器內存設置的物理內存空間。即使是sql server 進程此時是空閑的,系統也不會將 SQL Server 頁交換出去。
使用min server memory 保證sql server 使用的最小內存。SQL Server 啟動時不立即分配 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 值。
第一種情況比較適用於伺服器專做sql server伺服器的情況,第二種情況適用於為在同一台計算機上運行的其它應用程序保留一定的內存以便於快速響應。(另:如果想動態分配sql server 的內存,則不要設置set working set size 選項,使用默認值即可。至於這些參數如何設置參見另外的文檔)

監視 SQL Server 所使用的內存和計數器有助於確定:
是否由於缺少可用物理內存存儲高速緩存中經常訪問的數據而導致瓶頸存在。如果是這樣,SQL Server 必須從磁碟檢索數據。
是否可通過添加更多內存或使更多內存可用於數據高速緩存或 SQL Server 內部結構來提高查詢性能。
SQL Server 需要從磁碟讀取數據的頻率。與其它操作相比,例如內存訪問,物理 I/O 會耗費大量時間。盡可能減少物理 I/O 可以提高查詢性能。

對sql server伺服器內存的監視:
Memory:Available Bytes
計數器表示當前進程可使用的物理內存位元組數。
如果小於4M或更小,說明計算機上總的內存可能不足,或某個程序沒有釋放內存
● Memory: Page Faults / sec
每秒軟性頁面失效的數目(包括有些可以直接在內存中滿足而有些需要從硬碟讀取)較page/sec只表明數據不能在內存指定工作集中立即使用。
如果該值偶爾走高,表明當時有線程競爭內存。如果持續很高,則內
存可能是瓶頸。
Memory:Pages/sec
計數器表示由於缺頁處理而從磁碟取回的頁數,或由於缺頁處理而寫入磁碟以釋放工作集空間的頁數。
● Page Reads/sec
每秒發出的物理資料庫頁讀取數。這一統計信息顯示的是在所有資料庫間的物理頁讀取總數。由於物理 I/O 的開銷大,可以通過使用更大的數據高速緩存、智能索引、更高效的查詢或者改變資料庫設計等方法,使開銷減到最小。
● Page Writes/sec
所發出的物理資料庫頁寫入的數目。
監視 SQL Server 正在使用的內存量:
Process:Working Set
計數器表示的是一個進程所佔用的內存數量。
若這一數值持續低於 SQL Server 配置使用的內存數量(由"最小伺服器內存"和"最大伺服器內存"伺服器選項設置,( min server memory 的默認設置為 0,max server memory 的默認設置為 2147483647。),則表示 SQL Server 所配置的內存比它所需要的多。否則,用"設置工作集大小"伺服器選項修改工作集大小。
[在設置了sql server 使用的最小 和 最大內存後,查看此參數比較有意義。如果沒有設置sql server 內存使用范圍,則該值可以與系統總的內存比較,設置分配給sql server 的最大最小內存分配的是物理內存+虛擬內存的一部分]
● SQL Server:Buffer Manager:Buffer Cache Hit Ratio
數據請求可以從數據緩沖區中獲得所需數據的成功率
計數器值依應用程序而定,但比率最好為 90% 或更高。增加內存直到這一數值持續高於 90%,表示 90% 以上的數據請求可以從數據緩沖區中獲得所需數據。
● SQL Server:Buffer Manager: Total Pages
緩沖區池中頁的數目(包括資料庫、可用頁和被盜用頁)
若 Total Server Memory (KB) 計數器值與計算機的物理內存大小相比一直很高,可能表示需要更多的內存

結論:
對sql server 伺服器內存的監視,可以看出該伺服器整體的內存的佔用情況
對 sql server 使用內存的監視, 可以看出是否是sql server 使用了大多數內存
根據監視的結果確定是否是內存不夠。

其它:

內存相關參數調整(見後面)
SQL Server 對象內存使用情況說明(見後面)

疑問:
使用 set working set size =1 後,系統是在sql server 啟動時就分配給它要求的內存 還是 開始不分配這么多,而是等到用了這么多之後不釋放就行了?

SQL Server 對象內存使用情況說明
下表列出 Microsoft® SQL Server™ 中不同對象的內存使用量。下表中的信息不適用於 Microsoft® SQL Server 2000™ Windows® CE 版。
對象大小
對象 SQL Server 7.0 SQL Server 2000
鎖 96 位元組 每個所有者 64 位元組外加 32 位元組。
開放式資料庫 2.880 位元組 每個文件 3924 位元組外加 1640 位元組,每個文件組 336 位元組。
開放式對象1 276 位元組 每個對象上打開的索引 256 位元組外加 1724 位元組2。
用戶聯接 12 KB +(3 * 網路數據包大小)3。 12 KB +(3 * 網路數據包大小)3。

3 開放式對象包括所有的表、視圖、存儲過程、擴展存儲過程、觸發器、規則、默認值及約束。
2 在表或視圖上可以打開索引。
3 網路數據包大小是表格格式數據方案 (TDS) 數據包的大小,該數據包用於應用程序和關系資料庫引擎之間的通訊。默認的數據包大小為 4 KB,由 network packet size 配置選項控制。

內存相關:
伺服器虛擬內存的配置
頁面文件和物理內存或RAM構成虛禮內存

虛擬內存設置方法:
啟動"控制面板"的"系統"選項,然後選擇"虛擬內存"按鈕來創建一個附加的頁面文件或增加當前頁面文件的大小。

虛擬內存不足:
當伺服器上運行的應用程序請求的內存超過伺服器上可用的內存時,Microsoft® Windows® 打開"伺服器進程 — 虛擬內存用完"對話框,其文本如下所示:
系統的虛擬內存已經不足。請關閉一些應用程序。可以啟動"控制面板"的"系統"選項,然後選擇"虛擬內存"按鈕來創建一個附加的頁面文件或增加當前頁面文件的大小。

一般情況下,將虛擬內存大小設置為計算機中安裝的物理內存的 1.5 倍
如果另外安裝了全文檢索功能,並打算運行 Microsoft 搜索服務以便執行全文索引和查詢,可考慮:
將虛擬內存大小配置為至少是計算機中安裝的物理內存的 3 倍。
● 將 SQL Server max server memory 伺服器配置選項配置為物理內存的 1.5 倍(虛擬內存大小設置的一半)。
如考慮其它服務需要的虛擬內存,則配置 SQL Server max server memory 選項,使得留有足夠的虛擬內存滿足全文檢索內存需求。全部虛擬內存 -(SQL Server 最大虛擬內存 + 其它服務需要的虛擬內存)>= 1.5 倍物理內存。

Sql server 使用的內存參數的配置:
手工配置給 SQL Server 多於物理內存數量的虛擬內存會導致性能較低。默認情況下,SQL Server 能夠可用系統資源動態改變它的內存需求。min server memory 的默認設置為 0,max server memory 的默認設置為 2147483647。可以為 max server memory 指定的最小內存量為 4 MB。
作用:如果在運行 SQL Server 實例的計算機上頻繁啟動或停止其它應用程序,啟動這些應用程序所需的時間可能會因 SQL Server 實例分配和釋放內存而延長。另外,如果 SQL Server 是幾個在一台計算機上運行的伺服器應用程序中的一個,系統管理員可能需要控制分配給 SQL Server 的內存量。在這些情況下,可以使用 min server memory 和 max server memory 選項控制 SQL Server 可以使用的內存量。

對SQL Sserver 使用內存的配置主要是對以下三個參數進行配置:
min server memory 保證了 SQL Server 實例使用的最小內存量。
max server memory 則可防止 SQL Server 使用多於指定數量的內存,這樣剩餘的可用內存可以快速運行其它應用程序。
set working set size 為 SQL Server 保留等於伺服器內存設置的物理內存空間。

手工設置 SQL Server 內存選項有兩種主要方法:
第一種方法,設置 min server memory 和 max server memory 為同一數值。該數值與分配給 SQL Server 的固定內存量相對應。
● 第二種方法,把 min server memory 和 max server memory 數量設置到一個范圍段內。這種方法在系統或資料庫管理員希望配置 SQL Server 實例,使其適應在同一台計算機上運行的其它應用程序的內存需求時很有用。

如果只設置了min server memory 和 max server memory ,sql server 使用的內存值在最小和最大值之間變動(如果sql server 使用的值超過過最小值的話)
如果設置set working set size =1,必須先將min server memory 和 max server memory的值設成同一個值,這個值就是為sql server 保留的物理內存空間。即使當 SQL Server 空閑,另一個進程可以使用 SQL Server 頁時,系統也不會將 SQL Server 頁交換出去。

參數的設置方法:
1. 在查詢分析器中運行 [要先運行下面的語句,否則內存頁面打不開]
use master
exec sp_configure 'show advanced option','1'

2. 在企業管理器中配置,步驟:
打開Sql Server 屬性配置,選擇內存頁面,然後在裡面配置就行了。
(不過這里用圖形界面配置內存的時候好像不能超過物理內存的大小,可以用命令來分配大於物理內存的內存空間,下面有簡單的介紹。 )

對上圖的說明:
動態配置 SQL Server 內存
指定在更改伺服器屬性之後立即配置 Microsoft® SQL Server™ 內存。
使用固定的內存大小
為 SQL Server 指定固定的內存大小。
為 SQL Server 保留物理內存
為 SQL Server 保留與內存設置相等的物理內存空間。這意味著 Microsoft Windows NT® 4.0 或 Windows® 2000 不會將 SQL Server 頁交換出去,即使當 SQL Server 閑置時可以更容易地使用這些頁。
最小查詢內存
設置可以分配給每個用戶執行查詢的最小內存大小。默認為 1024 KB。
配置值[顯示現在配置的值,不做其它用途]
查看或更改此選項卡上的選項的配置值。如果更改了這些值,單擊"運行值"查看更改是否已生效。如果沒有,必須重新啟動 SQL Server 實例才能使更改生效。
運行值[顯示現在運行值,不做其它用途]
查看此選項卡上的選項的當前運行值。這些值為只讀值。

另:如果要用命令來設置比較麻煩。如下簡單舉個例子:
Set working set size 設置方法:
set working set size 是一個高級選項。如果要用 sp_configure 系統存儲過程改變該選項,必須把 show advanced options 設置為 1,該選項在停止並重新啟動伺服器後生效。
設置 show advanced options 設置為 1,在查詢分析器中運行以下命令:
use master
exec sp_configure 'show advanced option','1'
如果成功,會返回如下結果:

DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
已將配置選項 'show advanced options' 從 1 改為 1。請運行 RECONFIGURE 語句以安裝。

設置set working set size =1,運行如下命令:
use master
exec sp_configure 'set working set size','1'
如果成功,會返回如下結果:
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
已將配置選項 'set working set size' 從 0 改為 1。請運行 RECONFIGURE 語句以安裝。

…………………………………………

Cache Hit Ratio(高速緩存命中率,所有Cache」的命中率。在SQL Server中,Cache可以包括Log Cache,Buffer Cache以及Procere Cache,是一個總體的比率。) 高速緩存命中次數和查找次數的比率。對於查看SQL Server高速緩存對於你的系統如何有效,這是一個非常好的計數器。如果這個值很低,持續低於80%,就需要增加更多的內存。

設置架構高速緩存:
架構高速緩存可顯著提高 XPath 查詢的性能。當對帶批註的 XDR 架構執行 XPath 查詢時,架構存儲在內存中,而必要的數據結構內置在內存中。如果設置了架構高速緩存,架構仍保留在內存中,因而提高了後續 Xpath 查詢的性能。
解釋:
架構-SCHEMA
CREATE SCHEMA
創建一個架構,並且可以在概念上將其看作是包含表、視圖和許可權定義的對象。
CREATE SCHEMA 提供了在單個語句中創建表、視圖以及授予對象許可權的方法。如果在創建任何對象或授予任何許可權(這些是在 CREATE SCHEMA 語句中指定的)時發生錯誤,則不會創建任何對象。

XPath查詢-Xpath(XML Path 語言)是一種圖形導航語言
個人理解簡單的說就是在URL中指定查詢。[詳細知識參照sql server 聯機幫助文檔]

設置方法:
可通過在注冊表中添加下列鍵來設置架構高速緩存的大小:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SQLXMLX\SchemaCacheSize。
[我在注冊表中沒找到位置!?]
根據可用內存和要使用的架構數設置架構大小。默認的架構高速緩存大小為 31。如果設置更高的架構高速緩存大小,需使用更多的內存。因此,如果架構訪問速度慢,可增加高速緩存大小,如果內存少則可減小高速緩存的大小。
出於性能方面的考慮,建議將架構高速緩存的大小設得比通常所用的映射架構數多。當架構數增加時,如果架構高速緩存的大小比所擁有的架構數少,性能會降低。

❷ sqlserver 設多大的內存合適

根據常用的數據 做存儲過程 比較省內存

❸ 為什麼伺服器上sqlserver會占那麼多內存

SQLSERVER默認採用動態分配內存模式,只要有訪問操作,它就會首先嘗試申請內存,直到到設置的最大值,我曾經碰到過伺服器1G內存,Sqlserver分配了800多兆,但系統仍然正常工作。當然也可以在企業管理器,點伺服器->屬性->內存頁面上根據實際需要改為使用固定大小,但是一般不建議這么修改

❹ 如何解決SQLServer占內存過多的問題

我們需要准備的材料分別是:電腦。

1、在我的電腦中,搜索訪問sql佔用內存,在右側的管理伺服器中選擇重新啟動,重啟一下IIS。

❺ 設置伺服器提高SQLserver查詢速度

1、是否建立了索引?
2、是否網速有問題?
3、是否是有死鎖?
4、是否及時收縮日誌和資料庫空間?

❻ 專享主機限制sqlserver佔用最大內存的方法

目前發現有部分專享主機由於sqlserver資料庫佔用的內存過大,造成伺服器可用內存資源過少,導致伺服器運行緩慢甚至宕機。您可以通過以下方法限制sqlserver佔用的最大內存,從而保證伺服器有足夠的內存可以使用:
1、登錄伺服器->打開企業管理器
2、打開SQL Server組
3、右鍵點擊 (local)本地實例->選擇「屬性」
4、點擊「內存」項,在其中「最大值」項中可以設定當前sqlserver可佔用的最大內存
5、根據自己站點的訪問規模以及sqlserver資料庫的規模進行適當設定,一般建議限制在128M以下,不要超過256M

❼ sqlserver2005怎麼設置內存

SQLSERVER的內存用在哪裡?
SQL會緩存大量的數據頁面,他還會緩存很多其他信息,包括存儲過程的執行計劃 ,特定用戶的安全上下文等
如果這些信息沒有在資料庫中緩存,SQL都要重新計算一遍,花額外的時間,所以SQLSERVER對內存的需求是十分強烈的。

配置:
(1)如果伺服器支持64位操作系統,沒有特殊理由的話,請安裝64位系統。這樣SQL能夠有效地使用 大於2GB的內存。如果一定要用32位系統,務必將SQLSERVER伺服器屬性裡面的「使用AWE分配內存」打開。但是不要用boot.ini文件里的/3GB這個開關,即不要在boot.ini文件里加上/3GB這個參數。

(2)盡量使伺服器專門供資料庫使用,不要將其他服務(例如IIS,中間層應用服務等)安裝在同一台機器上。多個生產應用服務在同一台機器上運行,會大大增加維護成本

(3)建議設置SQLSERVER max server memory(最大伺服器內存),以確保Windows有足夠的內存供系統本身使用。
情況歸納如下:
一台4GB機器,建議預留1GB,設置SQLSERVER max server memory為2.8GB
一台8GB機器,建議預留2GB,設置SQLSERVER max server memory為6GB
一台大於8GB的64位機器,建議預留3GB~4GB
如果一台伺服器上還有其他應用使用內存,也要扣除他們的內存使用數
一般設置SQLSERVER min server memory(最小伺服器內存)意義不大

(4)如果是企業版SQLSERVER,建議賦給SQLSERVER啟動帳號lock page in memory的許可權
設置方法如下:
打開組策略(運行 ,輸入gpedit.msc)-》找到計算機配置-》Windows設置-》安全設置-》本地策略-》用戶許可權分配-》鎖定內存頁
在鎖定內存頁上右鍵,打開鎖定內存頁屬性,添加SQLSERVER啟動帳號進去

(5)「set working set size」 這個SQLSERVER參數在現在的Windows上不能起到固定SQL物理內存的作用,所以請永遠不要使用

修改完配置之後需要重啟SQLSERVER服務才能生效!!!!!

除了配置之外還有一些應對內存錯誤的其他一些建議:
升級Windows2003到SP2,或者使用Windows2008 ,這些版本的Windows的內存管理機制有了調整
升級硬體驅動程序,或者聯系微軟技術服務,幫忙檢查是不是硬體方面問題引起

❽ 如何設置SQLServer資料庫內存

如果能在實例級別為同一SQL伺服器上的不同實例限制其能夠使用的最大和最小內存,就能降低這種情況對其他應用系統的影響。具體的操作如下:

(一)實例的最大和最小內存設置

右擊資料庫,選擇屬性,如圖。

❾ SQLServer 最大內存佔用是多少

沒有任何額外的進程下佔用不到200M但哪個是你剛安裝系統的情況下.要是時間長了 多了幾個插件多了幾個進程的話 就會多佔一點,但最多也就200M左右.哪個只是任務管理器里的數字.但每個系統都有虛擬內存,要是你的內存是 512的話就把虛擬內存調到 1500M就可以了.256的話減少一點.

閱讀全文

與伺服器提升sqlserver專用內存相關的資料

熱點內容
手工壓力飲水機怎麼做 瀏覽:241
華津凈水器怎麼擰開 瀏覽:840
周村純凈水哪裡有 瀏覽:202
kibana自定義過濾器 瀏覽:934
南京市城東污水處理廠環評 瀏覽:400
納濾膜和超濾膜區別 瀏覽:772
南通市污水泵站 瀏覽:567
第七代伊蘭特機油濾芯怎麼拆 瀏覽:784
租房子的飲水機怎麼用 瀏覽:48
sryb過濾器 瀏覽:581
濱赫空氣凈化器前蓋怎麼打開 瀏覽:336
今日牌飲水機多少錢 瀏覽:707
氣浮酒廠廢水 瀏覽:852
雨污水閉水試驗支管是否也要做 瀏覽:936
河北飯店油煙凈化器價格怎麼樣 瀏覽:389
石油蒸餾成汽油溫度 瀏覽:376
一體式樹脂瓦 瀏覽:432
空調濾芯電裝什麼意思 瀏覽:82
凈水器什麼牌比較好些 瀏覽:525
殺污水大腸桿菌的葯有哪些 瀏覽:989