簡單回答:
成都創(chuàng)新互聯(lián)專注于漢壽企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站制作。漢壽網(wǎng)站建設(shè)公司,為漢壽等地區(qū)提供建站服務(wù)。全流程按需設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
因為它的設(shè)計是為了提供最高效快速的數(shù)據(jù)服務(wù)。它會盡可能利用(占用)電腦的內(nèi)存、CPU資源來做數(shù)據(jù)服務(wù)。
1、SQL Server是數(shù)據(jù)庫系統(tǒng),它的設(shè)計目標就是以當前設(shè)備硬件的最大的資源來為其它或自已提供最高效快速的數(shù)據(jù)查詢、存儲、運算支持。
2、所以,它在運行過程中,默認情況下,會占用較大的內(nèi)存,會用較高的CPU性能,因為它可不管你的想法是什么,它的想法就是時刻準備著,查詢、存儲、運算數(shù)據(jù)。它會將它認為最常用的數(shù)據(jù)調(diào)入內(nèi)存中,以加快查詢速度,會不停的想法兒優(yōu)化算法,優(yōu)化物理存儲位置,以做到盡可能的最快的速度提供操作者想要的數(shù)據(jù)。
3、SQL Server對內(nèi)存的占用是可以調(diào)定與調(diào)整的,在起動 “企業(yè)管理器”或“SQL Server Management Studio”在里面點擊樹狀結(jié)構(gòu)的根目錄,點屬性,到里面相關(guān)的參數(shù)處可設(shè)定數(shù)據(jù)庫的內(nèi)存占用。提示的是,過小的內(nèi)存占用會引發(fā)SQL Server的運行故障。
4、個人電腦,安裝它用于調(diào)試、編程學習、或某些特定軟件數(shù)據(jù)支持,不用時,可以去控制面版的“服務(wù)”中,關(guān)閉“SQLServer”相關(guān)服務(wù),即可讓它不再占用系統(tǒng)資源,但這并不是太方便,而且只適用于對電腦比較熟悉的朋友。
sql server 在查詢大數(shù)據(jù)量的數(shù)據(jù)時,總會占用大量的內(nèi)存,并且居高不下,一不小心就會死機。
下面這個是我從網(wǎng)上找到的:
當你查詢數(shù)據(jù)的數(shù)據(jù)量比較大時,sqlserver會把查詢結(jié)果緩存在內(nèi)存中,保證你下次查詢同樣的記錄時會很快得到結(jié)果,所以內(nèi)存使用量會激增。
在你完成此次查詢后,sqlserver不會馬上釋放內(nèi)存,數(shù)據(jù)會仍然放在內(nèi)存中,這是sqlserver的優(yōu)化策略,sqlserver會不斷地占用你的系統(tǒng)內(nèi)存,來加快sqlserver的運行速度,當你的系統(tǒng)中的其它服務(wù)也需要內(nèi)存時,它才會自動釋放部分內(nèi)存。一句話,sqlserver不會讓你的系統(tǒng)有閑置的內(nèi)存,除非你設(shè)置sqlserver的最大內(nèi)存使用量。這樣也沒什么不好,如果你的系統(tǒng)很大,單獨給sqlserver一臺機器,這樣會提高它的性能。
如果你只是開發(fā)用,要想讓sqlserver釋放內(nèi)存,重啟sqlserver的服務(wù)就行了。如果不想讓sqlserver占用太多內(nèi)存,設(shè)置sqlserver的最大內(nèi)存占用量.
設(shè)置最大內(nèi)存后效果好了不少!
是因為沒有改變安裝路徑。
1、首先第一步就是進行從官網(wǎng)下載sqLserver運行軟件安裝程序,進行軟件運行后,在彈出的安裝界面“選擇全新安裝sqL server”即可。
2、其次進行點擊后,等待程序檢查運行完成,然后點擊“確定”,會彈出的許可條款界面勾選“我接受許可條款”,選擇下一步即可,
3、在彈出的安裝程序支持規(guī)則界面點擊“下一步”,這時候注意的是在彈出的功能選擇界面勾選全部選項,然后點擊“下一步”,在彈出的磁盤空間要求界面點擊“下一步”,在彈出的準備安裝界面點擊“安裝”
4、最后點擊在彈出的準備安裝界面點擊“安裝”即可。
SQL Server對服務(wù)器內(nèi)存的使用策略是用多少內(nèi)存就占用多少內(nèi)存,只用在服務(wù)器內(nèi)存不足時,才會釋放一點占用的內(nèi)存,所以SQL Server 服務(wù)器內(nèi)存往往會占用很高。
Sql Server運行時候的緩存:
1.數(shù)據(jù)緩存:執(zhí)行個查詢語句,Sql Server會將相關(guān)的數(shù)據(jù)頁(Sql Server操作的數(shù)據(jù)都是以頁為單位的)加載到內(nèi)存中來, 下一次如果再次請求此頁的數(shù)據(jù)的時候,就無需讀取磁盤了,大大提高了速度。
2.執(zhí)行命令緩存:在執(zhí)行存儲過程,自定函數(shù)時,Sql Server需要先二進制編譯再運行,編譯后的結(jié)果也會緩存起來, 再次調(diào)用時就無需再次編譯。
清除緩存的命令(直接執(zhí)行第四個命令清除所有緩存):
DBCC FREEPROCCACHE --清除存儲過程相關(guān)的緩存
DBCC FREESESSIONCACHE --會話緩存
DBCC FREESYSTEMCACHE('All') --系統(tǒng)緩存
DBCC DROPCLEANBUFFERS --所有緩存
注意:清除了緩存,不會釋放SQL Server所占用的內(nèi)存,所以需要通過修改SQL Server內(nèi)存或重啟SQL Server服務(wù)器來釋放內(nèi)存。
修改SQL Server內(nèi)存:
優(yōu)化:使用以下語句查找出什么語句占內(nèi)存最高,針對占內(nèi)存高的語句進行優(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 '總和邏輯讀數(shù)',
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
轉(zhuǎn)自:
我們需要準備的材料分別是:電腦。
1、在我的電腦中,搜索訪問sql占用內(nèi)存,在右側(cè)的管理服務(wù)器中選擇重新啟動,重啟一下IIS。
2、查看一下,sql服務(wù)仍然占用大量的內(nèi)存,內(nèi)存占用基本沒有改變。
3、然后重啟sql服務(wù)。
4、然后再重啟一下sql代理。
5、最后再看一下任務(wù)管理器,就會發(fā)現(xiàn)內(nèi)存占用量降低了。