當前位置:首頁 » 編程語言 » 提升sql內存
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

提升sql內存

發布時間: 2022-03-12 04:55:22

1. 怎樣解決sql Server內存不斷增加問題

當系統本身有內存可以用的的時候,SQL Server 根據操作系統報告的物理內存載入動態增大和收縮其緩沖池(緩存)的大小。只要有足夠的內存可用於防止內存頁面交換(在 4 至 10 MB 之間),SQL Server 緩沖池就會繼續增大。如果你想把sql的內存控制在某個數量,可以更改配置信息,

1.打開企業管理器,展開伺服器組。

2.單擊該伺服器,點擊滑鼠右鍵,單擊屬性菜單。

3.在彈出的對話框中單擊內存選項卡。

可以看到SQLServer將動態配置內存的最大值修改為物理內存的最大值了

解決 SQL Server 耗盡內存的情況
如果碰到SQL Server服務造成內存不斷擴展最終系統死機等情況,請按照以下方法解決。

原理:SQL Server 2000引入的動態內存分配機制,一般不能很好的回收內存,如果計算機一直不關閉,就會發生內存耗盡的可能。可以選擇每周關機一次來避免,或者是按照下述方法來抑制內存的增長。

1、在伺服器上開始—Microsoft SQL Server—企業管理器 中啟動SQL企業管理器
2、啟動以後打開右邊的控制台樹:控制台根目錄\Microsoft SQL server\Sql Server組\(Local) 。
3、在(Local)節點上單擊滑鼠右鍵,選擇"屬性"菜單,可以看到一個 SQl Server屬性(配置) 窗體
4、選擇"內存"舌標,打開內存配置頁面。將內存的最大值限定在一定的范圍內,一般按照以下比例:
a) 如果僅僅用於資料庫伺服器,為總內存的80-90%
b) 如果兼任域伺服器,一般為60-70%
c) 如果還兼任WEB伺服器,建議最大為60%
5、設定完畢點擊確定,然後重新啟動SQl Server服務使之生效即可。

解決伺服器的w3wp.exe進程佔用cpu和內存過多的問題
解決CPU佔用過多:
1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。
2、設置應用程序池的CPU監視,不超過30%(一個程序池20個站),每分鍾刷新,超過限制時關閉。

根據w3wp取得是哪一個應用程序池:
1、在任務管理器中增加顯示pid欄位。就可以看到佔用內存或者cpu最高的進程pid
2、在命令提示符下運行iisapp -a。注意,第一次運行,會提示沒有js支持,點擊確定。然後再次運行就可以了。這樣就可以看到pid對應的應用程序池。(iisapp實際上是存放在C:\windows\system32目錄下的一個VBS腳本,全名為iisapp.vbs,如果你和我一樣,也禁止了Vbs默認關聯程序,那麼就需要手動到該目錄,先擇打開方式,然後選「Microsoft (r) Windows Based Script. Host」來執行,就可以得到PID與應用程序池的對應關系。)
3、到iis中察看該應用程序池對應的網站,就ok了,做出上面的內存或CPU方面的限制,或檢查程序有無死循環之類的問題。

解決內存佔用過多,可以做以下配置:
1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。
2、設置應用程序池的回收時間,去掉默認為1720,設置固定時間回收(在下列時間回收工作進程:00:01 06:01 12:01)。再設置當內存佔用超過多少(如192M 10個站一個程序池時),就自動回收內存。
3、在性能中設置啟用CPU監視
最大使用率 30%
刷新率 1分鍾
操作:關閉
1、 要限制一個站點的CPU使用,必須將該站點設置為獨立應用程序池,共用應用程序池是無法限制單個站點的。IIS獨立應用程序池,就需要獨立的進程,非常消耗內存。獨立池越多,就有越多的W3WP進程。對於每個站點均要獨立應用程序池的伺服器,在一般的普通P43.0 2G內存 的普通伺服器上,建議不要超過50個站點,最好30以內,不然伺服器壓力非常大。在配置上,我一般把資源消耗較大的網站獨立一個池,一般普通BBS或者生成HTML的系統大概5個站一個池。普通網站以及一些企業站點均共用一個池。

2、根據wlmmc的經驗,在伺服器硬體允許的情況下,一般不要限制站點內存使用,這樣能夠保證網站運行,不會出現用戶掉線情況。需要限制某站的最大虛擬內存不要小於64M,不然可能出現一些未知的錯誤。

3、這些都不是根本解決辦法,它的根本問題是網站程序有問題,要解決根本問題還要從程序查起。根據本文開頭提到的方法查到具體的應用程序池,找到使用此應用程序池的網站,解決網站程序存在的問題,如死循環之類。

4、除了w3wp.exe, 在調用資料庫進行大量查詢操作的時候,也會大量佔用CPU資源,這是難免的(資料庫方面的語句及結構優化不在本文討論范圍之內)。個人認為,只要不是CPU長時間佔用100%, 一般在75%左右都是正常的。

2. sql資料庫佔用內存太大如何處理

sql server沒有辦法釋放內存,內存都是系統自動管理的
除非你殺調哪些佔用內存大的進程
sql 語句沒寫好,死鎖...都會導致佔用內存很大
select * from master..sysprocesses

kill spid --spid 就是上面查到的spid欄位

3. sql占內存太大,怎樣設置對sql的內存限制

在 SERIAL 對象預設插入後你可以用函數 currval() 檢索剛賦值的 SERIAL 值例如:
SELECT currval('person_id_seq')
使用 currval() 不會導致和其他用戶的沖突情況,因為currval() 返回的是你本次會話進程所賦的值而不是所有用戶的當前值。

4. 怎麼更改SQL SERVER內存大小

方法/步驟

1
安裝好SQL server2008 r2和SQL Server Management Studio後,打開SQL Server Management Studio

2
點擊連接按鈕,右鍵伺服器,選擇屬性

3
點擊內存,在右邊可以根據需要更改相應的數值

5. SQL 內存佔有不斷增加

給你看看原理是怎麼樣子的就知道了
改好了不會對訪問有太大影響的

當 SQL Server 資料庫引擎在 Microsoft Windows NT 或 Windows 2000 上運行時,其默認內存管理行為並不是獲取特定的內存量,而是在不產生多餘換頁 I/O 的情況下獲取盡可能多的內存。為此,資料庫引擎獲取盡可能多的可用內存,同時保留足夠的可用內存以防操作系統交換內存。

SQL Server 實例在啟動時通常獲取 8 到 12 MB 的內存以完成初始化過程。當實例完成初始化後,就不會再獲取更多的內存,直到用戶連接到該實例並開始產生工作負荷。這時,該實例根據需要不停地獲取內存以支持工作負荷。隨著更多的用戶連接並運行查詢,SQL Server 將獲取支持需求所需的額外內存。該實例將繼續獲取內存直到達到自身的內存分配目標,並且直到達到該目標的下限才會釋放任何內存。

為了在不產生多餘換頁 I/O 的情況下獲取盡可能多的內存,SQL Server 的每個實例都設置一個內存獲取目標,直到計算機的可用物理內存在 4 MB 到 10 MB 的范圍內。之所以選擇該范圍是因為測試表明 Windows NT 和 Windows 2000 都有最小內存交換,直到內存分配等於可用物理內存減去 4 MB。工作負荷處理任務重的 SQL Server 實例保留的可用物理內存為范圍的較低端 (4 MB);工作負荷處理任務輕的實例保留的可用物理內存為范圍的較高端 (10 MB)。

SQL Server 實例的目標隨工作負荷的改變而變化。當更多的用戶連接並產生更多的工作時,該實例傾向於獲取更多的內存以使可用的內存保持在 4 MB 的限制以下。當工作負荷減輕時,該實例將其目標調整為 10 MB 的可用空間,並釋放內存給操作系統。將可用空間量保持在 10 MB 與 4 MB 之間可防止 Windows NT 或 Windows 2000 過多執行換頁操作,同時使 SQL Server 得以獲得盡可能最大的高速緩沖存儲器而不至引起額外的交換。

實例的目標內存設置與資料庫緩沖池的頁相對於可用池大小的需求有關。在任何即時點,緩沖區頁的總需求取決於滿足所有當前執行的查詢所需的數據頁數。如果相對於高速緩沖存儲器內的頁數,數據頁的需求很大,則當前在緩沖區內的每一頁很可能在相對較短的時間內由新頁替換。這可由」緩沖區管理器」對象的」頁生命期」性能計數器來度量。對於相對較小的緩沖區有較高需求的情況將生成短生命期,而純粹的影響就是使 I/O 增加,因為在頁可由多個邏輯讀取引用之前往往要被重寫。為減輕這個問題,資料庫引擎可以獲取更多的內存以增加高速緩沖存儲器的大小。當頁生命期長時,資料庫引擎將可用內存定位於目標的高端 (10 MB);而當頁生命期短時,資料庫引擎定位於目標范圍的低端 (4 MB)。

隨著其它應用程序在運行 SQL Server 實例的計算機上啟動,它們消耗內存致使可用物理內存量降到 SQL Server 的目標以下。SQL Server 實例於是從其地址空間釋放足夠內存,以使可用內存量回到 SQL Server 的目標。如果有其它應用程序停止運行而使可用內存增多,SQL Server 實例將增加其內存分配大小。SQL Server 可以每秒釋放並獲取幾 MB 位元組的內存,這使它得以根據內存分配變化作出快速調整。

你可以通過設置允許sql server可以使用的最大內存來做限制:最小和最大伺服器內存的影響

min server memory 和 max server memory 配置選項建立由 SQL Server 資料庫引擎使用的內存量的上限和下限。資料庫引擎並不立即獲取 min server memory 中指定的內存量。資料庫引擎啟動時只使用初始化所需的內存。隨著資料庫引擎工作負荷的增加,它將繼續獲取支持工作負荷所需的內存。資料庫引擎直到到達 min server memory 中指定的內存量才會釋放任何所需的內存。一旦到達 min server memory,資料庫引擎將使用標准演算法(使操作系統的可用內存保持在 4 MB 到 10 MB 之間)獲取和釋放所需內存。唯一的區別是資料庫引擎從不將內存分配降到 min server memory 所指定的水平下,也從不獲取超過max server memory 所指定水平的內存。

資料庫引擎獲取的內存量完全取決於放置在實例上的工作負荷。不處理很多請求的 SQL Server 實例可能永遠達不到 min server memory。

如果為 min server memory 和 max server memory 指定相同的值,則一旦分配給資料庫引擎的內存達到該值,資料庫引擎將停止動態釋放和獲取內存。

如果在運行 SQL Server 實例的計算機上頻繁啟動或停止其它應用程序,啟動這些應用程序所需的時間可能會因 SQL Server 實例分配和釋放內存而延長。另外,如果 SQL Server 是幾個在一台計算機上運行的伺服器應用程序中的一個,系統管理員可能需要控制分配給 SQL Server 的內存量。在這些情況下,可以使用 min server memory 和 max server memory 選項控制 SQL Server 可以使用的內存量。

何設置固定的內存量(企業管理器)

設置固定的內存量

展開一個伺服器組。

右擊一個伺服器,再單擊」屬性」。

單擊」內存」選項卡。

單擊」使用固定的內存大小 (MB)」,然後將固定內存滑塊放在適當的位置。

說明 如果使用默認設置,則 Microsoft® SQL Server™ 將動態配置內存。

這是由sql server的內存管理機制決定的。

6. sql吃內存的問題,不管你的內存有多大,sql總是能佔用你90+%的內存,增加了內存,他還是佔用90+%的內存!

可以配置使用內存。
登錄SQL Server Management Studio

在實例名上右鍵-屬性-內存
在配置值中配置最大伺服器內存。

7. 如何讓sqlserver2000使用8G 大內存

http://technet.microsoft.com/zh-cn/library/ms190673.aspx

8. 如何增加pl/sql的運行內存

要成功執行這個存儲過程,你需要注意幾點:
1.select * from ods_area; 不能直接在pl/sql 中作為語句執行。
應該用 select 欄位 into plsql變數 from 表名;
的形式來獲取表中的數據,保存到plsql變數中。

2. 存儲過程的語法格式為:
create or replace procere area
is
--變數聲明;
begin
--過程主體;
end area;
3. 如果存儲過程代碼無誤,可以通過 "/" 來執行代碼,編譯存儲過程。
4.通過exec 或 execute 來調用編譯後的存儲過程。

9. 如何增加sql虛擬內存

能說清楚一點嗎?是資料庫分配的內存還是query頁面的大小?
如果是前者,需要提供資料庫的類型和版本,然後經過仔細地研究該資料庫運行的特點進行調優。
如果是後者,將query頁面大小調整就可以了,一般將4k擴大成8k就可以。
還是報什麼錯了?請具體講

10. sqlserver內存大小設置多少合適

我們在使用電腦的過程中,偶爾會遇到提示「虛擬內存不足,請增加你的虛擬內存」的情況,那虛擬內存是什麼?該怎樣增大虛擬內存呢?聽「電腦那些事兒」跟大家說說!

虛擬內存的含義就是在磁碟上劃出一塊區域,用來當作內存來使用,彌補內存條不足的一種方法。電腦系統有虛擬內存設置功能,我們可以自定義設置虛擬內存的大小。

1、右擊「計算機」,選擇「屬性」;

2、在打開的「系統」界面中,單擊左側的「高級系統設置」;

3、在打開的「系統屬性」界面中,切換到「高級」標簽,單擊性能選項框裡面的「設置」按鈕。

4、在打開的「性能選項」的窗口中,選擇「高級」標簽,然後選擇「更改」;

5、去掉「自動管理所有驅動器的分頁文件大小」的「√」,選擇一個盤符,不建議放到系統盤,可以找一個空間比較大的盤符,自定義大小即可,如果不知道設置為多少,可以設置成下面的推薦值。

6、設置完成以後,重啟計算機即可。

注意:如果物理內存偏小,可以把虛擬內存設置得大一點,可以為物理內存的2倍或3倍。如果物理內存已經很大,比如有4G或者8G,那就只可以保持默認狀態或1.5倍即可,太大了,反而會影響電腦性能。

順手收藏並轉發一下吧,讓更多的朋友受益!

最後,有問題可以關注「電腦那些事兒」微信公眾號留言哦【問題+郵箱】(電腦系統、軟體應用等各種問題都可以),小編晚間會一一回復。