第一步:打開企業(yè)管理器雙擊進入要修改的MSSQL.
創(chuàng)新互聯提供高防服務器租用、云服務器、香港服務器、綿陽電信機房機柜租用等
第二步:在左側MSSQL上點擊右鍵,選擇屬性,彈出SQL Server屬性(配置)對話框(最好打上SQL SP4補?。?/p>
第三步:點擊內存選項卡. 在這里,你會看到MSSQL默認設置為使用最大內存,也就是你所有的內存,根據你的需要,設置它的最大值(一般為物理內存-128M)和最小值(一般為最大內存的1/4)吧.
第五步:設置完畢,重啟MSSQL服務,配置即可生效!
SQL Server對服務器內存的使用策略是用多少內存就占用多少內存,只用在服務器內存不足時,才會釋放一點占用的內存,所以SQL Server 服務器內存往往會占用很高。
Sql Server運行時候的緩存:
1.數據緩存:執(zhí)行個查詢語句,Sql Server會將相關的數據頁(Sql Server操作的數據都是以頁為單位的)加載到內存中來, 下一次如果再次請求此頁的數據的時候,就無需讀取磁盤了,大大提高了速度。
2.執(zhí)行命令緩存:在執(zhí)行存儲過程,自定函數時,Sql Server需要先二進制編譯再運行,編譯后的結果也會緩存起來, 再次調用時就無需再次編譯。
清除緩存的命令(直接執(zhí)行第四個命令清除所有緩存):
DBCC FREEPROCCACHE --清除存儲過程相關的緩存
DBCC FREESESSIONCACHE --會話緩存
DBCC FREESYSTEMCACHE('All') --系統(tǒng)緩存
DBCC DROPCLEANBUFFERS --所有緩存
注意:清除了緩存,不會釋放SQL Server所占用的內存,所以需要通過修改SQL Server內存或重啟SQL Server服務器來釋放內存。
修改SQL Server內存:
優(yōu)化:使用以下語句查找出什么語句占內存最高,針對占內存高的語句進行優(yōu)化
SELECT SS.SUM_EXECUTION_COUNT,
T.TEXT,
SS.SUM_TOTAL_ELAPSED_TIME AS '總和時間',
SS.SUM_TOTAL_WORKER_TIME AS '執(zhí)行耗時',
SS.SUM_TOTAL_LOGICAL_READS AS '總和邏輯讀數',
SS.SUM_TOTAL_LOGICAL_WRITES AS '總和邏輯寫'
FROM (SELECT S.PLAN_HANDLE,
SUM(S.EXECUTION_COUNT)SUM_EXECUTION_COUNT,
SUM(S.TOTAL_ELAPSED_TIME)SUM_TOTAL_ELAPSED_TIME,
SUM(S.TOTAL_WORKER_TIME)SUM_TOTAL_WORKER_TIME,
SUM(S.TOTAL_LOGICAL_READS)SUM_TOTAL_LOGICAL_READS,
SUM(S.TOTAL_LOGICAL_WRITES)SUM_TOTAL_LOGICAL_WRITES
FROM SYS.DM_EXEC_QUERY_STATS S
GROUP BY S.PLAN_HANDLE
) AS SS
CROSS APPLY SYS.dm_exec_sql_text(SS.PLAN_HANDLE)T
ORDER BY SUM_TOTAL_LOGICAL_READS DESC
轉自:
1、 主要設置min server memory 和 max server memory ,如果同臺服務器有多臺吃內存大戶服務, max server memory 給設置一個值稍大的值出來,別讓SQL server把WINDOWS內存都吃完了也別讓其他的服務把WINDOWS內存吃完了,這樣才會相安無事2.設置方法可以通過命令方式的,樓上的挺好,還有就是通過SQL SERVER企業(yè)管理器進行:鼠標右鍵服務器\屬性\內存 可以看多最大內存和最小內存設置選項。
我們需要準備的材料分別是:電腦。
1、在我的電腦中,搜索訪問sql占用內存,在右側的管理服務器中選擇重新啟動,重啟一下IIS。
2、查看一下,sql服務仍然占用大量的內存,內存占用基本沒有改變。
3、然后重啟sql服務。
4、然后再重啟一下sql代理。
5、最后再看一下任務管理器,就會發(fā)現內存占用量降低了。
SqlServer內存分配默認是自動的,如果你需要手動分配的話可以實例處右鍵屬性,然後在內存處設置即可
sql server 在查詢大數據量的數據時,總會占用大量的內存,并且居高不下,一不小心就會死機。
下面這個是我從網上找到的:
當你查詢數據的數據量比較大時,sqlserver會把查詢結果緩存在內存中,保證你下次查詢同樣的記錄時會很快得到結果,所以內存使用量會激增。
在你完成此次查詢后,sqlserver不會馬上釋放內存,數據會仍然放在內存中,這是sqlserver的優(yōu)化策略,sqlserver會不斷地占用你的系統(tǒng)內存,來加快sqlserver的運行速度,當你的系統(tǒng)中的其它服務也需要內存時,它才會自動釋放部分內存。一句話,sqlserver不會讓你的系統(tǒng)有閑置的內存,除非你設置sqlserver的最大內存使用量。這樣也沒什么不好,如果你的系統(tǒng)很大,單獨給sqlserver一臺機器,這樣會提高它的性能。
如果你只是開發(fā)用,要想讓sqlserver釋放內存,重啟sqlserver的服務就行了。如果不想讓sqlserver占用太多內存,設置sqlserver的最大內存占用量.
設置最大內存后效果好了不少!
網頁題目:sqlserver內存化,sqlserver限制內存使用
轉載來源:http://m.rwnh.cn/article30/phpcpo.html
成都網站建設公司_創(chuàng)新互聯,為您提供靜態(tài)網站、網站排名、網站營銷、品牌網站設計、網頁設計公司、外貿建站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯