狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

合理設(shè)置內(nèi)存讓數(shù)據(jù)庫(kù)與其他程序共存

admin
2011年5月5日 22:14 本文熱度 3149
  在SQL Server數(shù)據(jù)庫(kù)中,有min server memory與max server memory兩個(gè)內(nèi)存選項(xiàng)。數(shù)據(jù)庫(kù)管理員合理設(shè)置這兩個(gè)選項(xiàng)可以讓SQL SERVER數(shù)據(jù)庫(kù)系統(tǒng)與其他英勇程序和平共存。顧名思義,min server memory就是設(shè)置數(shù)據(jù)系統(tǒng)所使用的最小內(nèi)存,而max server memory用來(lái)設(shè)置其可以使用的最大內(nèi)存。



    一、SQL SERVER數(shù)據(jù)庫(kù)的內(nèi)存管理機(jī)制。


  在數(shù)據(jù)庫(kù)啟動(dòng)的時(shí)候,其實(shí)數(shù)據(jù)庫(kù)引擎并不會(huì)馬上在內(nèi)存中抓取min參數(shù)規(guī)定的內(nèi)存量。這種占著茅坑不拉屎的事情SQL Server數(shù)據(jù)庫(kù)是不會(huì)做的。系統(tǒng)在剛開(kāi)始啟動(dòng)的時(shí)候,數(shù)據(jù)庫(kù)緩沖池只抓取初始化所需要的內(nèi)存,如上圖所示。數(shù)據(jù)庫(kù)啟動(dòng)之后隨著業(yè)務(wù)量的增大,數(shù)據(jù)庫(kù)引擎的工作負(fù)荷也會(huì)隨之增加。此時(shí)數(shù)據(jù)庫(kù)引擎會(huì)繼續(xù)獲取完成工作所需要的內(nèi)存。在達(dá)到min規(guī)定的內(nèi)存數(shù)量之前,數(shù)據(jù)庫(kù)引擎緩沖池是不會(huì)釋放它獲取的任何內(nèi)存。如數(shù)據(jù)庫(kù)初始化內(nèi)存為20M,而規(guī)定的min內(nèi)存數(shù)量為50M。則可能因?yàn)橛脩舨樵兡硞€(gè)負(fù)責(zé)報(bào)表的需要,內(nèi)存需要量會(huì)達(dá)到40M。查詢作業(yè)執(zhí)行完畢后數(shù)據(jù)庫(kù)系統(tǒng)緩沖池實(shí)際使用的內(nèi)存量可能只需要20M即可。但是只要沒(méi)有達(dá)到50M這個(gè)值。則數(shù)據(jù)庫(kù)系統(tǒng)不會(huì)把沒(méi)有的20M內(nèi)存還給操作系統(tǒng),而是一直占用著,以方面后續(xù)的作業(yè)。


  如果用戶需要調(diào)用數(shù)據(jù)庫(kù)系統(tǒng)中的函數(shù)或者過(guò)程,此時(shí)內(nèi)存的需要量可能會(huì)超過(guò)規(guī)定的最小內(nèi)存量,如達(dá)到80M。此時(shí)數(shù)據(jù)庫(kù)引擎會(huì)根據(jù)一定的標(biāo)準(zhǔn)算法,根據(jù)需要來(lái)獲取和釋放內(nèi)存。當(dāng)需要使用超過(guò)50M的內(nèi)存的時(shí)候,只要沒(méi)有達(dá)到內(nèi)存的最大限值之前,則會(huì)根據(jù)系統(tǒng)提供的標(biāo)準(zhǔn)算法來(lái)獲取內(nèi)存。至于這個(gè)標(biāo)準(zhǔn)算法到底是怎么樣的,這不是我們數(shù)據(jù)庫(kù)管理員所需要關(guān)注的內(nèi)容。然后等到這個(gè)過(guò)程或者函數(shù)調(diào)用完畢后,內(nèi)存使用量可能會(huì)降低到最低內(nèi)存數(shù)量以下,如又回復(fù)到40M。此時(shí)數(shù)據(jù)庫(kù)引擎就會(huì)釋放內(nèi)存,把沒(méi)有用到的內(nèi)存釋放出來(lái)給其他應(yīng)用程序使用。但是這個(gè)釋放會(huì)有一個(gè)限制。數(shù)據(jù)庫(kù)引擎緩沖池從不將內(nèi)存分配降低到最小內(nèi)存所指定的水平下。也就是說(shuō),此時(shí)數(shù)據(jù)庫(kù)最多會(huì)釋放30M的內(nèi)存,為自己留下50M的內(nèi)存空間,即使當(dāng)前其可能只需要用到40M內(nèi)存空間即可。當(dāng)然在抓取內(nèi)存空間的時(shí)候,其也不會(huì)為自己分配高于MAX內(nèi)存所規(guī)定的內(nèi)存空間。


  二、內(nèi)存參數(shù)配置對(duì)其他應(yīng)用系統(tǒng)的影響。


  在一臺(tái)服務(wù)器上,往往多個(gè)應(yīng)用程序需要共享內(nèi)存。如可能在一臺(tái)服務(wù)器上部署了多個(gè)應(yīng)用系統(tǒng),至少在一臺(tái)服務(wù)器上操作系統(tǒng)與SQL Server數(shù)據(jù)庫(kù)之間需要共存。為此SQL Server數(shù)據(jù)庫(kù)可以使用多少的內(nèi)存空間,肯定會(huì)對(duì)其他的應(yīng)用程序產(chǎn)生比較大的影響。


  如在一臺(tái)服務(wù)器上部署了SQL Server數(shù)據(jù)庫(kù)系統(tǒng)、郵件應(yīng)用系統(tǒng)、ERP應(yīng)用服務(wù)器等等三個(gè)應(yīng)用系統(tǒng)。如果先啟動(dòng)SQL Server數(shù)據(jù)庫(kù)系統(tǒng),后來(lái)又要啟動(dòng)郵件應(yīng)用系統(tǒng),此時(shí)郵件應(yīng)用系統(tǒng)的啟動(dòng)速度就會(huì)受到影響。因?yàn)槟承?yīng)用程序在初始化的過(guò)程中可能會(huì)需要用到比較大的內(nèi)存空間。而在啟動(dòng)的過(guò)程中,可能數(shù)據(jù)庫(kù)在使用的內(nèi)存比較多,剩余的內(nèi)存不能夠滿足其他應(yīng)用程序啟動(dòng)的需要。此時(shí)其他應(yīng)用程序在啟動(dòng)時(shí)就會(huì)等待,等待數(shù)據(jù)庫(kù)應(yīng)用程序釋放內(nèi)存。這就會(huì)延長(zhǎng)其他應(yīng)用程序的啟動(dòng)時(shí)間。


  另外在執(zhí)行某些工作的時(shí)候,也會(huì)影響到。如在同一個(gè)時(shí)間對(duì)數(shù)據(jù)庫(kù)與郵箱服務(wù)器進(jìn)行備份作業(yè)。由于備份作業(yè)需要用到比較多的內(nèi)存,此時(shí)就會(huì)發(fā)生內(nèi)存爭(zhēng)用選項(xiàng)。為此如果能夠把數(shù)據(jù)庫(kù)的最低內(nèi)存設(shè)置的比較低的話,則數(shù)據(jù)庫(kù)系統(tǒng)在用完內(nèi)存話就可以馬上把內(nèi)存釋放出來(lái),而不會(huì)為自己保留比較大的暫時(shí)不同的內(nèi)存空間。同理,在保障業(yè)務(wù)需求的情況下把最大內(nèi)存設(shè)置的比較小,則可以為其他應(yīng)用程序留下比較多的內(nèi)存空間。


三、多個(gè)應(yīng)用程序共存時(shí)的內(nèi)存分配


 


  如果一臺(tái)服務(wù)器上只運(yùn)行了一個(gè)數(shù)據(jù)庫(kù)應(yīng)用程序,或者說(shuō)數(shù)據(jù)庫(kù)的應(yīng)用比較簡(jiǎn)單、數(shù)據(jù)庫(kù)內(nèi)存使用量基本上不會(huì)超過(guò)最小內(nèi)存數(shù)量的花,則可以采用默認(rèn)多參數(shù)配置。但是如果在同一臺(tái)服務(wù)器上部署了比較多的應(yīng)用程序或者數(shù)據(jù)庫(kù)設(shè)計(jì)比較復(fù)雜,此時(shí)就需要對(duì)數(shù)據(jù)庫(kù)的最小內(nèi)存與最大內(nèi)存進(jìn)行配置,以實(shí)現(xiàn)多個(gè)應(yīng)用程序能夠?qū)崿F(xiàn)和平共處。另外如果數(shù)據(jù)庫(kù)本身比較簡(jiǎn)單,但是其他應(yīng)用程序比較復(fù)雜,可能會(huì)占用90%以上的內(nèi)存時(shí),數(shù)據(jù)庫(kù)就需要采用一定的保護(hù)措施,需要設(shè)置最小內(nèi)存與最大內(nèi)存,來(lái)保障自己數(shù)據(jù)庫(kù)正常運(yùn)行所需要的內(nèi)存空間。


  1、數(shù)據(jù)庫(kù)管理員需要監(jiān)測(cè)內(nèi)存的使用情況,并根據(jù)監(jiān)測(cè)的數(shù)據(jù)來(lái)進(jìn)行設(shè)置。由于采取的操作系統(tǒng)、部署的應(yīng)用程序不同;甚至在SQL Server數(shù)據(jù)庫(kù)中啟用的服務(wù)不同,數(shù)據(jù)庫(kù)需要使用的內(nèi)存數(shù)量也是不同的。為此沒(méi)有一個(gè)具體的標(biāo)準(zhǔn)說(shuō)最小內(nèi)存或者最大內(nèi)存要配置多少。通常情況下需要數(shù)據(jù)庫(kù)管理員跟蹤數(shù)據(jù)庫(kù)服務(wù)器一段時(shí)間,看看其內(nèi)存的使用量。如筆者建議用戶,數(shù)據(jù)庫(kù)系統(tǒng)正是投入使用后,在頭一年內(nèi)需要每個(gè)月觀測(cè)一下內(nèi)存的使用情況。由于頭幾個(gè)月可能使用的不穩(wěn)定,所得到的數(shù)據(jù)參考價(jià)值不大。而從第六個(gè)月開(kāi)始到第12個(gè)月近八個(gè)月數(shù)據(jù)庫(kù)內(nèi)存的使用情況來(lái)看,基本上可以得出一個(gè)最小內(nèi)存與最大內(nèi)存的合理范圍。然后數(shù)據(jù)庫(kù)管理員就可以來(lái)對(duì)內(nèi)存的最大最小值來(lái)進(jìn)行設(shè)置。以后若前臺(tái)應(yīng)用程序做了新的調(diào)整或者數(shù)據(jù)庫(kù)中采用了新的功能,仍然需要對(duì)內(nèi)存的使用情況進(jìn)行監(jiān)測(cè),來(lái)確定一個(gè)合理的內(nèi)存使用范圍。一般來(lái)說(shuō),最好把最小內(nèi)存設(shè)置的小一點(diǎn),而把最大內(nèi)存的花設(shè)置的大一點(diǎn)。如此的話,可以讓數(shù)據(jù)庫(kù)引擎在管理內(nèi)存的時(shí)候有比較大的靈活性。然后再進(jìn)行后續(xù)監(jiān)測(cè)的數(shù)據(jù)來(lái)進(jìn)行相應(yīng)的調(diào)整,慢慢的把內(nèi)存配置調(diào)整到優(yōu)選。根據(jù)筆者的經(jīng)驗(yàn),要達(dá)到合理的內(nèi)存配置之前,往往需要一個(gè)比較漫長(zhǎng)的時(shí)間。不過(guò)這對(duì)于數(shù)據(jù)庫(kù)性能優(yōu)化來(lái)說(shuō),可能這個(gè)過(guò)程也不是很長(zhǎng)。


  2、要分析數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)存的使用大戶,跟其他應(yīng)用程序的內(nèi)存使用高峰分流。數(shù)據(jù)庫(kù)中函數(shù)、過(guò)程、復(fù)雜的視圖、備份等作業(yè)都會(huì)用到比較可觀的內(nèi)存。如企業(yè)如果在SQL SERVER數(shù)據(jù)庫(kù)上面部署了ERP系統(tǒng),而系統(tǒng)中有一個(gè)“庫(kù)存采購(gòu)”作業(yè),這個(gè)需要用到比較復(fù)雜的業(yè)務(wù)邏輯,需要考慮到庫(kù)存、安全庫(kù)存、包裝數(shù)量等等比較復(fù)雜的計(jì)算。為此最好能夠把這個(gè)作業(yè)放到服務(wù)器比較空的時(shí)候運(yùn)行,以跟其他應(yīng)用程序錯(cuò)開(kāi)運(yùn)行。如在應(yīng)用程序設(shè)計(jì)的時(shí)候,可以把這個(gè)作業(yè)放在后臺(tái)運(yùn)行,并讓其在晚上12點(diǎn)運(yùn)行。然后在第二天早上之前出來(lái)結(jié)果。另外每個(gè)應(yīng)用程序都需要對(duì)自己的數(shù)據(jù)進(jìn)行備份,以防不時(shí)之需。而備份程序往往也需要用到比較多的內(nèi)存。為此最好能夠把各種應(yīng)用程序的備份作業(yè)錯(cuò)開(kāi)來(lái)運(yùn)行。如此的話可以減少應(yīng)用程序之間內(nèi)存的占用。


  四、數(shù)據(jù)庫(kù)內(nèi)存分配的特殊情況。


  如果在同一個(gè)服務(wù)器上部署多個(gè)應(yīng)用程序的話,內(nèi)存的爭(zhēng)用是在所難免的。為此數(shù)據(jù)庫(kù)管理員往往需要為數(shù)據(jù)庫(kù)分配合適的內(nèi)存參數(shù),保證數(shù)據(jù)庫(kù)即能夠滿足其日常運(yùn)行的需要,又盡量減少對(duì)其他應(yīng)用程序的不良影響。在參數(shù)配置的過(guò)程中,除了需要考慮如上幾個(gè)建議之外,還需要注意數(shù)據(jù)庫(kù)內(nèi)存分配中的特殊情況。


  如果把最小內(nèi)存與最大內(nèi)存的值設(shè)置為相同,那么會(huì)產(chǎn)生什么情況呢?如果把它們?cè)O(shè)置為相同的值,則一旦分配給數(shù)據(jù)庫(kù)引擎的內(nèi)存達(dá)到這個(gè)值的話,則數(shù)據(jù)庫(kù)引擎將停止為緩沖池動(dòng)態(tài)釋放和獲取內(nèi)存。也就是說(shuō),此時(shí)數(shù)據(jù)庫(kù)內(nèi)存的分配就是固定的,不會(huì)根據(jù)數(shù)據(jù)庫(kù)引擎的負(fù)荷來(lái)動(dòng)態(tài)的獲取或者釋放。顯然對(duì)于生成用的服務(wù)器來(lái)說(shuō),這并不是一個(gè)很好的配置。但是在一些特殊的應(yīng)用下,卻可以起到比較不錯(cuò)的效果。如需要測(cè)試數(shù)據(jù)庫(kù)某個(gè)作業(yè)與內(nèi)存之間的關(guān)系,那么就有可能需要把它們的值配置為相同。另外如果服務(wù)器中只運(yùn)行了數(shù)據(jù)庫(kù)應(yīng)用程序,那就有可能需要把這兩個(gè)參數(shù)設(shè)置的比較高,以減少數(shù)據(jù)庫(kù)內(nèi)存釋放與獲取時(shí)所發(fā)生的額外開(kāi)銷等等。


  另外數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中的某些作業(yè)是不受這個(gè)最大內(nèi)存的限制的。如數(shù)據(jù)庫(kù)中的進(jìn)程可能會(huì)得到超過(guò)最大內(nèi)存選項(xiàng)所指定的內(nèi)存;數(shù)據(jù)庫(kù)的一些外部組建也可以得到緩沖池以外的內(nèi)存。不過(guò)在大部分情況下,數(shù)據(jù)庫(kù)運(yùn)行還是受到這個(gè)緩沖池內(nèi)存的限制的。所以說(shuō)在內(nèi)存參數(shù)設(shè)置的時(shí)候,最好能夠留有一定的余地。


該文章在 2011/5/5 22:14:14 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved