解答SQL Server 的內(nèi)存為何不斷增加_Mssql數(shù)據(jù)庫教程
推薦:怎樣從SQL Server備份文件導入現(xiàn)存數(shù)據(jù)庫SQL Server本身有數(shù)據(jù)導入的操作。但如果要從一個備份的文件中導入數(shù)據(jù),則要進行另外的操作。下面以一個例子進行說明。 SQL Server服務器上已有一個DOE數(shù)據(jù)庫,并且里面有大量的數(shù)據(jù),現(xiàn)準備從另外一個備份文件A1.BAK(不是DOE數(shù)據(jù)庫的備份文件)中導入另外的
當SQL Server 數(shù)據(jù)庫引擎在 Microsoft® Windows NT® 或 Windows® 2000 上運行時,其默認內(nèi)存管理行為并不是獲取特定的內(nèi)存量,而是在不產(chǎn)生多余換頁 I/O 的情況下獲取盡可能多的內(nèi)存。為此,數(shù)據(jù)庫引擎獲取盡可能多的可用內(nèi)存,同時保留足夠的可用內(nèi)存以防操作系統(tǒng)交換內(nèi)存。
SQL Server 實例在啟動時通常獲取8MB到12MB 的內(nèi)存以完成初始化過程。當實例完成初始化后,就不會再獲取更多的內(nèi)存,直到用戶連接到該實例并開始產(chǎn)生工作負荷。這時,該實例根據(jù)需要不停地獲取內(nèi)存以支持工作負荷。隨著更多的用戶連接并運行查詢,SQL Server 將獲取支持需求所需的額外內(nèi)存。該實例將繼續(xù)獲取內(nèi)存直到達到自身的內(nèi)存分配目標,并且直到達到該目標的下限才會釋放任何內(nèi)存。
為了在不產(chǎn)生多余換頁 I/O 的情況下獲取盡可能多的內(nèi)存,SQL Server 的每個實例都設置一個內(nèi)存獲取目標,直到計算機的可用物理內(nèi)存在4MB到10MB的范圍內(nèi)。之所以選擇該范圍是因為測試表明 Windows NT 和 Windows 2000 都有最小內(nèi)存交換,直到內(nèi)存分配等于可用物理內(nèi)存減去4MB。工作負荷處理任務重的 SQL Server 實例保留的可用物理內(nèi)存為范圍的較低端 (4MB);工作負荷處理任務輕的實例保留的可用物理內(nèi)存為范圍的較高端 (10MB)。
SQL Server 實例的目標隨工作負荷的改變而變化。當更多的用戶連接并產(chǎn)生更多的工作時,該實例傾向于獲取更多的內(nèi)存以使可用的內(nèi)存保持在4MB 的限制以下。當工作負荷減輕時,該實例將其目標調(diào)整為10MB的可用空間,并釋放內(nèi)存給操作系統(tǒng)。將可用空間量保持在10MB與4MB之間可防止 Windows NT 或 Windows 2000 過多執(zhí)行換頁操作,同時使 SQL Server 得以獲得盡可能最大的高速緩沖存儲器而不至引起額外的交換。
實例的目標內(nèi)存設置與數(shù)據(jù)庫緩沖池的頁相對于可用池大小的需求有關(guān)。在任何即時點,緩沖區(qū)頁的總需求取決于滿足所有當前執(zhí)行的查詢所需的數(shù)據(jù)頁數(shù)。如果相對于高速緩沖存儲器內(nèi)的頁數(shù),數(shù)據(jù)頁的需求很大,則當前在緩沖區(qū)內(nèi)的每一頁很可能在相對較短的時間內(nèi)由新頁替換。這可由“緩沖區(qū)管理器”對象的“頁生命期”性能計數(shù)器來度量。對于相對較小的緩沖區(qū)有較高需求的情況將生成短生命期,而純粹的影響就是使 I/O 增加,因為在頁可由多個邏輯讀取引用之前往往要被重寫。為減輕這個問題,數(shù)據(jù)庫引擎可以獲取更多的內(nèi)存以增加高速緩沖存儲器的大小。當頁生命期長時,數(shù)據(jù)庫引擎將可用內(nèi)存定位于目標的高端 (10MB);而當頁生命期短時,數(shù)據(jù)庫引擎定位于目標范圍的低端 (4MB)。
隨著其它應用程序在運行 SQL Server 實例的計算機上啟動,它們消耗內(nèi)存致使可用物理內(nèi)存量降到 SQL Server 的目標以下。SQL Server 實例于是從其地址空間釋放足夠內(nèi)存,以使可用內(nèi)存量回到 SQL Server 的目標。如果有其它應用程序停止運行而使可用內(nèi)存增多,SQL Server 實例將增加其內(nèi)存分配大小。SQL Server 可以每秒釋放并獲取幾MB字節(jié)的內(nèi)存,這使它得以根據(jù)內(nèi)存分配變化作出快速調(diào)整。
你可以通過設置允許SQL Server可以使用的最大內(nèi)存來做限制:
1、最小和最大服務器內(nèi)存的影響。
2、min server memory 和 max server memory 配置選項建立由 SQL Server 數(shù)據(jù)庫引擎使用的內(nèi)存量的上限和下限。數(shù)據(jù)庫引擎并不立即獲取 min server memory 中指定的內(nèi)存量。數(shù)據(jù)庫引擎啟動時只使用初始化所需的內(nèi)存。隨著數(shù)據(jù)庫引擎工作負荷的增加,它將繼續(xù)獲取支持工作負荷所需的內(nèi)存。數(shù)據(jù)庫引擎直到到達 min server memory 中指定的內(nèi)存量才會釋放任何所需的內(nèi)存。一旦到達 min server memory,數(shù)據(jù)庫引擎將使用標準算法(使操作系統(tǒng)的可用內(nèi)存保持在 4 MB 到 10 MB 之間)獲取和釋放所需內(nèi)存。唯一的區(qū)別是數(shù)據(jù)庫引擎從不將內(nèi)存分配降到 min server memory 所指定的水平下,也從不獲取超過max server memory 所指定水平的內(nèi)存。
3、數(shù)據(jù)庫引擎獲取的內(nèi)存量完全取決于放置在實例上的工作負荷。不處理很多請求的 SQL Server 實例可能永遠達不到 min server memory。
如果為 min server memory 和 max server memory 指定相同的值,則一旦分配給數(shù)據(jù)庫引擎的內(nèi)存達到該值,數(shù)據(jù)庫引擎將停止動態(tài)釋放和獲取內(nèi)存。
如果在運行 SQL Server 實例的計算機上頻繁啟動或停止其它應用程序,啟動這些應用程序所需的時間可能會因 SQL Server 實例分配和釋放內(nèi)存而延長。另外,如果 SQL Server 是幾個在一臺計算機上運行的服務器應用程序中的一個,系統(tǒng)管理員可能需要控制分配給 SQL Server 的內(nèi)存量。在這些情況下,可以使用 min server memory 和 max server memory 選項控制 SQL Server 可以使用的內(nèi)存量。
如何設置固定的內(nèi)存量(企業(yè)管理器),先設置固定的內(nèi)存量然后再展開一個服務器組。右擊一個服務器,再單擊"屬性"。單擊"內(nèi)存"選項卡。單擊"使用固定的內(nèi)存大小 (MB)",然后將固定內(nèi)存滑塊放在適當?shù)奈恢谩?/p>
說明:如果使用默認設置,則 Microsoft® SQL Server™ 將動態(tài)配置內(nèi)存。這是由SQL Server的內(nèi)存管理機制決定的。
分享:SQL Server 2005 數(shù)據(jù)庫鏡像簡介自從SQL Server 2000以來,你已經(jīng)能夠通過使用復制來創(chuàng)建一個備用的服務器、傳輸日志,以及備份和重新存儲了但是現(xiàn)在微軟又引入了一個內(nèi)建的工具,它可以實現(xiàn)自動的錯誤恢復。數(shù)據(jù)庫鏡像是SQL Server 2005的一個新特性,它允許你將一個SQL Server中的數(shù)據(jù)庫
- sql 語句練習與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復數(shù)據(jù)的幾個方法
- sql刪除重復數(shù)據(jù)的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數(shù)據(jù)庫,提示 無法為該請求檢索數(shù)據(jù) 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數(shù)的用法實例詳解
Mssql數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫教程推薦
猜你也喜歡看這些
- java連接mysql數(shù)據(jù)庫亂碼怎么辦
- MySQL筆記之視圖的使用詳解
- 用MyEclipse配置DataBase Explorer(圖示)
- MySQL與Oracle的語法區(qū)別詳細對比
- C# Mysql 查詢 Rownum的解決方法
- 解析MYSQL 數(shù)據(jù)庫導入SQL 文件出現(xiàn)亂碼的問題
- mysql常用設置:字符集編碼、自動完成(自動提示)、監(jiān)聽外網(wǎng)ip
- MySql中把一個表的數(shù)據(jù)插入到另一個表中的實現(xiàn)代碼
- 深入探討:MySQL數(shù)據(jù)庫MyISAM與InnoDB存儲引擎的比較
- MySQL查詢優(yōu)化:用子查詢代替非主鍵連接查詢實例介紹
- 相關(guān)鏈接:
- 教程說明:
Mssql數(shù)據(jù)庫教程-解答SQL Server 的內(nèi)存為何不斷增加
。