awe enabled 選項

下一版的 Microsoft SQL Server 將不再提供此功能。請勿在新的開發工作中使用此功能,並且儘速修改使用此功能的應用程式。

在 SQL Server 中,您可以使用 Address Windowing Extensions (AWE) API 來提供存取權,以存取超過所設定之虛擬記憶體限制的實體記憶體。具體可用的記憶體大小須視硬體組態與作業系統支援而定。在 Microsoft Windows Server 2003 作業系統之後,已增加了可支援的實體記憶體量。因此,AWE 可存取的實體記憶體視您使用的作業系統而定。

  • Windows Server 2003 Standard Edition 最高支援 4 GB 的實體記憶體。

  • Windows Server 2003 Enterprise Edition 最高支援 32 GB 的實體記憶體。

  • Windows Server 2003 Datacenter Edition 最高支援 64 GB 的實體記憶體。

[!附註]

64 位元作業系統不需要而且無法設定 AWE。

使用狀況的考量

在啟用 AWE 之前,請考慮下列作業系統特定準則。

Windows 2000

  • 如果可用的實體記憶體少於虛擬記憶體位址空間上所設定的限制,則無法啟動 AWE 對應記憶體。在此情況下,會動態配置記憶體,且 SQL Server 會以非 AWE 模式執行 (不管 awe enabled 的設定為何)。

  • 如果可用的實體記憶體大於可存取的虛擬記憶體,則可啟動 AWE 對應記憶體。如果是這樣的話,有下列兩種狀況:

    • 如果可用的實體記憶體大於 max server memory 選項的值,SQL Server 執行個體就會鎖定 max server memory 所指定的記憶體數量。

    • 如果可用的實體記憶體少於 max server memory 選項,或未設定 max server memory 選項,則 SQL Server 執行個體會鎖定 128MB 以外的所有可用記憶體。

  • AWE 對應記憶體要等到 SQL Server 關閉之後才會釋出。Microsoft 強烈建議您在每次啟用 AWE 時設定 max server memory 選項的值,並考慮伺服器上執行之其他應用程式的記憶體需求。

Windows Server 2003

  • 在 Windows Server 2003 上,SQL Server 支援 AWE 對應記憶體的動態配置。AWE 可延伸 32 位元作業系統上執行之應用程式的功能,因為它允許存取超過所設定之虛擬記憶體位址空間限制的可用實體記憶體。

  • 在啟動期間,SQL Server 只保留一小部分的 AWE 對應記憶體。如果需要額外的 AWE 對應記憶體,作業系統會將它動態配置到 SQL Server。同樣地,如果需要較少的資源,SQL Server 可以將 AWE 對應記憶體傳回至作業系統,供其他處理序或應用程式使用。這個在 SQL Server 與作業系統間的平衡必須遵守 min server memory 和 max server memory 參數的條件約束。

  • 在執行 SQL Server 搭配 Windows Server 2003 時,SQL Server 會對 max server memorymin server memory 組態選項的變更作出回應,而不需要重新啟動 SQL Server 執行個體。如需有關 min server memorymax server memory 的詳細資訊,請參閱<伺服器記憶體選項>。

  • 在 Windows Server 2003 之下,伺服器的實體記憶體雖少於虛擬記憶體位址空間上所設定的限制,仍支援動態 AWE 對應記憶體。在此狀況下使用 AWE,對效能並無影響,但實體記憶體若增加超過虛擬記憶體位址限制,則不必重新啟動伺服器也可以使用它。

對於 Windows 2000 和 Windows Server 2003 而言,AWE 記憶體無法空出給分頁檔。因此,您應該指明在電腦上啟動所有其他要使用的應用程式之後有多少記憶體可供使用,以決定您有多少記憶體可安全配置給 SQL Server 的執行個體。

請使用系統監視器中的 SQL ServerTotal Server Memory (KB) 計數器來判斷在 AWE 模式下執行的 SQL Server 執行個體共配置多少記憶體。設定 max server memory 選項時,請保留一些額外可用的記憶體以供其他應用程式、Windows 2000 和 Windows Server 2003 使用。如需詳細資訊,請參閱<監視記憶體使用狀況>。

重要事項重要事項

使用 awe enabledmax server memory 會影響其他應用程式的效能,或在多重執行個體或叢集環境中執行的 SQL Server。如需有關使用 AWE 對應記憶體的詳細資訊,請參閱<管理大型資料庫的記憶體>。

啟用 AWE

若要啟用 AWE,請將 awe enabled 設定為 1。對於 Windows 2000 而言,除非已對 max server memory 指定值,否則 SQL Server 在啟動時會保留幾乎所有可用的記憶體,而留下 128 MB 以下的實體記憶體給其他應用程式。(若未啟用 AWE,留給其他應用程式的實體記憶體可由 max server memory 來控制)。若為 Windows Server 2003,AWE 對應記憶體的管理是動態的,因此可用的實體記憶體總量中只有一小部分是在啟動時配置。

如果已順利啟用本選項,則當 SQL Server 啟動時,"Address Windowing Extensions enabled" 訊息會寫入 SQL Server 錯誤記錄檔中。

[!附註]

在啟用 AWE 之前,必須授與 SQL Server 帳戶 LOCK PAGE IN MEMORY 權限。如需詳細資訊,請參閱<如何:啟用鎖定記憶體分頁選項 (Windows)>。

awe enabled 選項是進階選項。如果您要使用 sp_configure 系統預存程序來變更此設定,只有當 show advanced options 設為 1 時,才能變更 awe enabled。您必須重新啟動 SQL Server 執行個體,才能讓 AWE 生效。

範例

下列範例顯示如何啟用 AWE 以及將 min server memory 設為 1 GB,將 max server memory 設為 6 GB:

首先,啟用 AWE:

sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO

在 SQL Server 重新啟動之後,下列訊息應該會出現在 SQL Server 錯誤記錄檔中:Address Windowing Extensions enabled。

接下來,設定記憶體:

sp_configure 'min server memory', 1024
RECONFIGURE
GO
sp_configure 'max server memory', 6144
RECONFIGURE
GO

在前述的 SQL Server 和 Windows Server 2003 範例中,記憶體設定會讓緩衝集區動態管理 1 GB 到 6 GB 之間的 AWE 對應記憶體。(此動態 AWE 範例不適用 SQL Server 2000)。如果其他應用程式需要更多記憶體,SQL Server 可釋放已配置但不再需要的 AWE 對應記憶體。在此範例中,AWE 對應記憶體最多只能釋出 1 GB,這是最小伺服器記憶體的限制。

請注意,將 min server memory 選項設為 1 GB,不會自動強制 SQL Server 取得 1 GB 記憶體。將根據目前的資料庫伺服器負載,視需要來配置記憶體。

關閉 AWE

若要停用 AWE,請將 awe enabled 設為 0,並執行 RECONFIGURE 陳述式。依預設,會停用 AWE 記憶體。SQL Server 錯誤記錄檔會記錄 awe enabled 選項的變更。在重新啟動之後,SQL Server 會在正常動態記憶體配置模式下操作,且可用的記憶體將限制為虛擬位址空間或實體記憶體大小,以小者為主。