實例圖解SQL SERVER2000使用AWE進行內存優化
SQL SERVER2000使用AWE進行內存優化
由于本文步驟較多,截圖也較多,提供PDF文檔 下載
今年年初的時候一個客戶打電話抱怨系統隨著時間的推移越來越慢,在正常情況下還能夠忍受,如果系統出現數據問題需要重新執行,那可以想象在某一個時間急著需要報告而系統確是默默唧唧在拉破車,換誰都無法忍受。隨之,我們調查這個問題,系統本身的設計就沒有考慮到有如此大的機構數和高的頻度,所以造成了數據庫膨脹得特別快,特別是幾個主要存放數據表更是比較嚇人。
|
年份 |
數據量 |
比上年增長率 | ||
|
RMBCredit(萬條) |
ForeCredit(萬條) |
RMBCredit |
ForeCredit | |
|
2007前 |
41867.00 |
12857.00 |
—— |
—— |
|
2007 |
3978.14 |
2044.53 |
—— |
—— |
|
2008 |
8933.24 |
5080.01 |
2.25 |
2.48 |
|
2009 |
10597.30 |
5790.29 |
1.19 |
1.14 |
|
2010 |
15235.03 |
9001.57 |
1.44 |
1.55 |
|
2011 |
2185.91 |
116.82 |
—— |
—— |
從上表可以看出RMBCredit表近8.3億筆數據,這個數據量在不同的數據庫都是一個不小的數目,在討論后給出了如下方法:
(1)把歷史數據移到其他地方進行存放,由于在做數據分析的時候需要保留兩年的數據
(2)提高SQL Server2000內存使用量,可以通過開啟AWE進行實現;
(3)修改程序,按照年份存放不同數據表中(由于這個產品在公司已經有公司替代,處于消亡階段,該修改工作量大風險高,否決);
(4)使用數據庫分區功能(該功能在SQL Server2000未提供,另外做分區速度提升也不大,否決)
通過討論確定了1、2方法進行改造,具體AWE內存優化步驟如下面所介紹。
1. SQL SERVERAWE大內存設置方法
標準的 32 位地址最多可映射 4 GB 內存。因此32 位進程的標準地址空間限制為 4 GB。默認情況下,在 32 位 Microsoft Windows 操作系統中,將為操作系統保留 2 GB 空間,另外 2 GB 空間可由應用程序使用。
在32位操作系統中,一般SQL Server可以使用的內存不到2G,如果要SQL SERVER2000可以使用大容量的內存,我們需要開啟SQL-SERVER的AWE功能。
1.1. 前置條件
1.1.1. 數據庫全備份
在開始菜單選擇開始菜單--Micrsoft SQL Server--企業管理器:



數據庫:選擇PBOCJRTJDB數據庫
名稱:PBOCJRTJDB備份
目的:點擊“添加”按鍵添加F:\release金融統計信息共享平臺\2011-04-08備份\PBOCJRTDB-back 如圖:


點擊確定開始備份,完成后確定完成備份,如圖:

1.1.2. 數據庫補丁升級
1.1.2.1. SQL SP4補丁升級
從網站下載SQL SP4補丁,本文以下載SQL2KSP4.exe]為例:
SQL SP4補丁解壓
數據庫服務器:雙擊文件,跟據提示點擊下一步,如圖:




SQL SP4補丁升級
數據庫服務器:進入C:\SQL2KSP4目錄,如圖:

雙擊Setup.bat文件。如圖:

跟據提示點擊下一步,如圖

點擊“是”如圖:






從網站下載SQL AWE補丁,本文以下載[SQL2000-KB899761-v8.00.2040-x86x64-CHS.exe]為例數據庫服務器:雙擊







點擊完成,完成AWE升級。
1.2. 修改系統啟動參數
數據庫服務器:打開C:\boot.ini 文件,設定 /PAE 參數后保存重新啟動。如圖

1.3. 開啟SQL AWE 功能
數據庫服務器: 開始--程序--Microsoft SQL Server--查詢分析器:

點擊“確定”
在SQL查詢分析器中輸入下列指令,來啟動SQL Server的AWE功能(這里內存設置為32G):
2 RECONFIGURE
3 GO
4 sp_configure 'awe enabled', 1
5 RECONFIGURE
6 GO
7 sp_configure 'max server memory', 32000
8 RECONFIGURE
9 GO
10 sp_configure 'allow updates', 1
11 RECONFIGURE WITH OVERRIDE
12 GO

1.4. 為SQL啟動用戶設置本地安全策略
數據庫服務器:控制面板--管理工具--本地安全策略--安全設置--本機策略--用戶權限分配右邊窗口中選擇“內存鎖定頁面”

在“內存中鎖定頁”頁面中新增用戶或組,加入SQL-SERVER服務的啟動帳號(系統默認啟動帳號是administrators。)

在命令提示符下輸入 gpupdate,回車后更新策略

1.5. 重新啟動SQL Server服務使設定生效
重新啟動SQL Server服務使AWE擴展內存功能設定生效,如圖:
停止SQL Server服務

重啟SQL Server服務

1.6. 關閉SQL Server的allow updates功能
數據庫服務器: 開始--程序--Microsoft SQL Server--查詢分析器:

點擊“確定”
在SQL 查詢分析器中輸入下列指令,來關閉SQL Server的allow updates功能:
2 RECONFIGURE WITH OVERRIDE
3 GO

1.7. 查看SQL-SERVER內存設置后的情況
數據庫服務器: 開始--程序--Microsoft SQL Server--查詢分析器:

點擊“確定”
在SQL 查詢分析器中輸入下列指令,來查看SQL-SERVER內存設置后的情況:
2 go
3 select * from sysperfinfo where counter_name like '%Memory%'
4 go

查詢結果中查看
Target Server Memory(KB) SQL目標內存情況
Total Server Memory(KB) SQL內存擴展后使用情況
2. 關閉SQL AWE功能
數據庫服務器: 開始--程序--Microsoft SQL Server--查詢分析器:

點擊“確定”
在SQL 查詢分析器中輸入下列指令,來關閉SQL-SERVER AWE 功能:
2 RECONFIGURE
3 GO
4 sp_configure 'awe enabled', 0
5 RECONFIGURE
6 GO

3. SQL AWE功能測試案例
在一臺內存為6.0G的服務器上開啟了AWE功能,SQL Server2000內存擴展到5.3G,通過測試不同的場景速度上有了成倍的提升。在到正式環境后,性能上也得到了很大的提升,到現在客戶沒有打電話進行抱怨了。
|
測試機配置: |
CPU:6*2.0GHZ,RAM:6G |
|
SQL內存擴展 |
SQL尋址內存擴展為5.3G 左右 |
|
測試項目 |
并發處理AutoDataCatch,校驗,分析報表,前臺地區匯總 |
|
并發測試過程 | |
|
AutoDataCatch |
2011年3月7日日報數據采集,匯總,歸并(全國) |
|
測試結果:內存末擴展前,AutoDataCatch采集同樣批次,同樣數據量日報需6小時左右,內存擴展后日報采集,匯總,歸并只需2小時左右。 | |
|
校驗 |
3月涉農月報校驗,校驗包含:邏輯校驗,總分校驗;(全國) |
|
測試結果:內存擴展前,同樣報表校驗需1.5-2小時;內存擴展后校驗50分左右; | |
|
匯總 |
前臺匯總涉農季報A2333,A1333 |
|
測試結果:由于前臺匯總組件末更新,導致匯總報錯。(需要更新匯總組件) | |
|
分機報表 |
2月14日頭寸分析報表 |
|
測試結果:內存末擴展前,頭寸分析報表生成20分鐘左右,內存擴展后:頭寸分析報表生成5分鐘; | |

浙公網安備 33010602011771號