FIX: 一個 AWE 系統會使用更多的記憶體為排序或雜湊比在 SQL Server 2000 中的非 AWE 系統

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:831999
本文已封存。本文係以「現狀」提供且不會再更新。
Bug #: 469995 (Shiloh_bugs)

徵狀
SQL Server 排序與雜湊作業期間使用的記憶體是從緩衝集區配置為偷來的緩衝區。偷來的緩衝區必須永遠保持虛擬位址空間中。 它們不能是未對應至 Microsoft Windows 2000 地址視窗化擴充功能 (AWE) 位置。 SQL Server 會使用一個節流閥限制可以用多少記憶體,用於排序和雜湊。SQL Server 會限制記憶體基於這些原因:
  • 使整個緩衝集區不會由遭竊緩衝區加以使用。
  • 因此,緩衝集區可以繼續做為資料快取。
在已啟用 AWE 的系統上, 個多少記憶體可用來當作工作區記憶體用於排序和雜湊計算有時是高比非 AWE 系統上。因為偷來的緩衝區必須永遠保持在位址空間,額外的 AWE 記憶體應該此計算的無關。本文中討論此修正程式更正問題,使工作區可用於排序和雜湊計算一致跨越這兩種組態。

因為 miscalculation 的排序與雜湊作業可能會嘗試從緩衝集區非可維持對應使用更多的記憶體。結果 BPool::Map,類似下列的錯誤寫入至 SQL Server 錯誤記錄檔後面接著 DBCC MEMORYSTATUS 命令的輸出為:


2003-06-23 04:17:14.86 spid153 BPool::Map: 找到不 remappable 地址。
2003-06-23 04:17:15.04 spid92 緩衝區散發: 遭竊 = 133972 免費 = 10785 程序 = 17346 Inram = 0 Dirty = 155429 保留 = 0 我 / O = 2、 Latched = 988,其他 = 513478
2003-06-23 04:17:15.06 spid92 緩衝區計數: 認可 = 832000 目標 = 雜湊 832000 = 669897 InternalReservation = 1514 ExternalReservation = 4255 最小可用 = 1024年
2003-06-23 04:17:15.06 spid92 程序快取: TotalProcs = 8505 TotalPages = 17346 InUsePages = 6439
2003-06-23 04:17:15.06 spid92 動態記憶體管理員: 遭竊 = 25253 OS 保留 = 1776 OS 認可 = 1735 OS 使用中的 = 1644年查詢計劃 = 17383 最佳化器 = 0 一般 = 7999 公用程式 = 243 連線 = 907
2003-06-23 04:17:15.06 spid92 全域記憶體物件: 資源 = 3259 鎖定 = 102 SQLCache = 773 複寫 = 2 LockBytes = 2 ServerGlobal = 3528 Xact = 110
2003-06-23 04:17:15.06 spid92 查詢記憶體管理員: 授與 = 6 等候 = 0 的最大值 = 140712 可用 = 10409


在前面所示輸出,您可以看到 SQL Server 將允許多個要求,總共 140712 緩衝區以同時執行的查詢。在先前範例中有六個查詢正在執行與排序或雜湊。這些六個的查詢已授與 130303 緩衝區的使用 (140712 10409 = 130303)。
解決方案

服務套件資訊

如果要解決這個問題,取得最新的 Service Pack,Microsoft SQL Server 2000。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
290211如何取得最新的 SQL Server 2000 Service Pack

Hotfix 資訊

此修正程式的英文版具有檔案屬性 (或更新) 中如下表所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。 當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用 [中日期] 和 [時間] 工具,在 [控制台] 中的 [時區] 索引標籤]。
   Date         Time   Version            Size    File name   ------------------------------------------------------------------------------   31-May-2003  18:45  2000.80.818.0      78,400  Console.exe         28-Oct-2003  04:21  2000.80.873.0     315,968  Custtask.dll        02-Oct-2003  20:59  2000.80.867.0      33,340  Dbmslpcn.dll        25-Apr-2003  02:12                    786,432  Distmdl.ldf   25-Apr-2003  02:12                  2,359,296  Distmdl.mdf   30-Jan-2003  01:55                        180  Drop_repl_hotfix.sql   12-Sep-2003  03:26  2000.80.859.0   1,905,216  Dtspkg.dll          26-Aug-2003  20:16  2000.80.854.0     528,960  Dtspump.dll         23-Jun-2003  22:40  2000.80.837.0   1,557,052  Dtsui.dll           23-Jun-2003  22:40  2000.80.837.0     639,552  Dtswiz.dll          24-Apr-2003  02:51                    747,927  Instdist.sql   03-May-2003  01:56                      1,581  Inst_repl_hotfix.sql   08-Feb-2003  06:40  2000.80.765.0      90,692  Msgprox.dll         01-Apr-2003  02:07                      1,873  Odsole.sql   05-Apr-2003  01:46  2000.80.800.0      62,024  Odsole70.dll        07-May-2003  20:41  2000.80.819.0      25,144  Opends60.dll        02-Apr-2003  21:48  2000.80.796.0      57,904  Osql.exe            02-Apr-2003  23:15  2000.80.797.0     279,104  Pfutil80.dll        04-Aug-2003  18:17                    550,780  Procsyst.sql   12-Sep-2003  00:37                     12,305  Qfe469315.sql   22-May-2003  22:57                     19,195  Qfe469571.sql   06-Sep-2003  01:36                  1,090,932  Replmerg.sql   06-Sep-2003  07:18  2000.80.858.0     221,768  Replprov.dll        06-Sep-2003  07:18  2000.80.858.0     307,784  Replrec.dll         06-Sep-2003  00:00                  1,087,150  Replsys.sql   13-Aug-2003  16:28                    986,603  Repltran.sql   22-Oct-2003  00:08  2000.80.871.0      57,916  Semnt.dll           29-Jul-2003  20:13  2000.80.819.0     492,096  Semobj.dll          31-May-2003  18:27  2000.80.818.0     172,032  Semobj.rll   05-Aug-2003  21:06                    127,884  Sp3_serv_uni.sql   01-Jun-2003  01:01  2000.80.818.0   4,215,360  Sqldmo.dll          07-Apr-2003  17:44                     25,172  Sqldumper.exe       19-Mar-2003  18:20  2000.80.789.0      28,672  Sqlevn70.rll   27-Sep-2003  04:42  2000.80.865.0     180,792  Sqlmap70.dll        03-Sep-2003  02:56  2000.80.857.0     188,992  Sqlmmc.dll          02-Sep-2003  23:03  2000.80.857.0     479,232  Sqlmmc.rll   22-Oct-2003  00:08  2000.80.871.0     401,984  Sqlqry.dll          08-Feb-2003  06:40  2000.80.765.0      57,920  Sqlrepss.dll        05-Nov-2003  20:52  2000.80.876.0   7,606,353  Sqlservr.exe        25-Jul-2003  21:44  2000.80.845.0     590,396  Sqlsort.dll         08-Feb-2003  06:40  2000.80.765.0      45,644  Sqlvdi.dll          02-Oct-2003  20:59  2000.80.867.0      33,340  Ssmslpcn.dll        01-Jun-2003  01:01  2000.80.818.0      82,492  Ssnetlib.dll        01-Jun-2003  01:01  2000.80.818.0      25,148  Ssnmpn70.dll        28-Oct-2003  04:21  2000.80.873.0     123,456  Stardds.dll         01-Jun-2003  01:01  2000.80.818.0     158,240  Svrnetcn.dll        31-May-2003  18:59  2000.80.818.0      76,416  Svrnetcn.exe        30-Apr-2003  23:52  2000.80.816.0      45,132  Ums.dll             02-Jul-2003  00:19  2000.80.834.0      98,816  Xpweb70.dll      
注意 由於檔案相依性、 最新 Hotfix 或包含這些檔案的功能的可能也包含其他檔案。
狀況說明
Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

這個問題,首先已經在 Microsoft SQL Server 2000 服務套件 4 中獲得修正。
其他相關資訊
如果 DBCC DBREINDEX 陳述式時發生 BPool::Map 錯誤,或是執行 CREATE INDEX 陳述式請參閱下列文件 「 Microsoft 知識庫 」 中:

838459FIX: 您可能會收到 BPool::Map 警告,當您建立或重建索引使用 awe 啟用組態選項

Microsoft 知識庫 」 文件 838459 討論修正程式,可能會比較容易解釋,則為 True 錯誤的原因。
参考
如需有關軟體更新的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
824684用來描述 Microsoft 軟體更新標準術語的說明

警告:本文為自動翻譯

內容

文章識別碼:831999 - 最後檢閱時間:01/17/2015 05:30:38 - 修訂: 2.3

Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Workgroup Edition, Microsoft SQL Server 2000 Enterprise Edition 64-bit

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB831999 KbMtzh
意見反應