tempdb 資料庫的並行增強功能

文章翻譯 文章翻譯
文章編號: 328551 - 檢視此文章適用的產品。
Bug #: 362099 (SHILOH_BUGS)
全部展開 | 全部摺疊

在此頁中

徵狀

大量使用 tempdb 資料庫時 SQL Server 可能會遇到爭用情形,當它嘗試配置頁。

sysprocesses 系統資料表輸出 waitresource 可能最多顯示為"2: 1: 1"(PFS 頁面) 或"2: 1: 3"(SGAM 分頁)。爭用程度而定,這可能也導致到 SQL Server 的短期間出現停止回應。


這些作業大量使用 tempdb
  • 重複建立和拖放的暫存資料表 (本機或全域)。
  • 儲存體因為目的而使用 tempdb 的資料表變數。
  • 工作游標相關聯的資料表。
  • 工作與 ORDER BY 子句相關聯的資料表。
  • 工作 GROUP BY 子句相關聯的資料表。
  • 工作與雜湊計劃相關聯的檔案。
這些活動的重裝且重要使用可能造成爭用問題。

發生的原因

物件建立期間兩個 (2) 的網頁必須從混合範圍配置和指派給新的物件。一個頁面是用來在索引配置對應 (IAM)] 及第二個是第一頁的物件。SQL Server 會藉由使用 [共用通用配置對應 (SGAM) 追蹤混合的範圍] 頁面。每個 SGAM 分頁追蹤大約 4 GB 的資料。

混合的範圍從配置頁面一部分 SQL Server 必須掃描頁可用空間 (PFS)] 頁面,以找出哪一個混合的分頁可以自由地配置。PFS 頁面會追蹤每一頁上的可用空間並每個 PFS 分頁會追蹤約 8000 的頁面。適當的同步處理維護的變更會套用到 PFS 及 SGAM] 頁中 ; 而,可以停止其他修飾詞的短的期間。

當 SQL Server 會搜尋混合分頁配置時,它會一律啟動掃描在相同的檔案及 SGAM 頁面。這會導致強烈爭用 SGAM 頁面上時數個混合的頁面配置是進行中,這可能會造成本文 < 徵狀 > 一節所述的問題。

附註de-allocation 活動也必須修改這些網頁可以投稿至增加爭用。

若要瞭解更多關於 SQL Server SGAM、 GAM、 PFS (IAM) 所用的不同配置機制,請參閱本文 < 參考 > 一節。

解決方案

若要減少配置資源爭用,tempdb 遭遇重型使用量,請遵循所有這些步驟:
  1. 執行 SQL Server 2000 Service Pack 3 (SP3) 的伺服器將套用 Hotfix 8.00.0765 或最新的安全性修正 8.00.0818。執行 SQL Server SP2 的伺服器將套用 Hotfix 8.00.0702。

    這些修正程式可以從下列位置中加以使用:

    8.00.0765
    814916FIX: 過濾的發行集的合併代理程式可能會失敗
    8.00.0818
    http://www.microsoft.com/technet/security/bulletin/MS03-031.mspx
    8.00.0702
    328551tempdb 資料庫的 FIX: 並行增強功能
  2. 實作追蹤旗標 -T1118

    附註追蹤旗標 -T1118 也是可用及 Microsoft SQL Server 2005 和 SQL Server 2008 中受支援。不過,如果您正在執行 SQL Server 2005 或 SQL Server 2008,您沒有套用任何 Hotfix。
  3. 增加至少等於處理器數目的 tempdb 資料檔數目。而且,建立檔案具有相等的調整大小。如需詳細資訊請參閱 < 其他資訊 > 一節。
附註這些步驟也適用於 Microsoft SQL Server 7.0。唯一的例外是沒有 SQL Server 7.0 沒有 Hotfix ; 因此,步驟 1 不適用。

考慮到步驟 2,使用追蹤旗標-T1118 Microsoft SQL Server 7.0 的使用追蹤旗標之前請參閱下列文件 「 Microsoft 知識庫 」 中:
813492FIX: 建立索引失敗 SQL Server 7.0 上啟用追蹤旗標 1118年時

服務套件資訊

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

Hotfix 資訊

Hotfix 8.00.0702

此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用在 [日期及時間 中項目控制台中的 [時區] 索引標籤]。
   Date         Time   Version         Size       File name
   ----------------------------------------------------------------
   30-Aug-2002  21:08                    786,432  Distmdl.ldf
   30-Aug-2002  21:08                  2,359,296  Distmdl.mdf
   09-Oct-2002  00:54                        544  Drop_repl_hotfix.sql
   02-Jul-2002  15:35  2000.80.650.0     107,088  Impprov.dll      
   19-Jul-2002  16:56                    774,516  Instdist.sql
   08-Oct-2002  23:56                     12,615  Inst_repl_hotfix.sql
   20-Aug-2002  16:24  2000.80.679.0     111,172  Logread.exe      
   07-Apr-2002  02:08  2000.80.606.0      62,024  Odsole70.dll     
   03-Jan-2002  01:59                     18,185  Qfe356326.sql
   20-Aug-2002  16:47  2000.80.679.0     135,748  Qrdrsvc.exe      
   26-Aug-2002  22:49  2000.80.679.0     406,088  Rdistcom.dll     
   04-Oct-2001  01:36                    437,302  Replcom.sql
   20-Aug-2002  16:33  2000.80.679.0     152,136  Replmerg.exe     
   19-Nov-2001  20:36                    993,945  Replmerg.sql
   05-Nov-2002  23:48  2000.80.700.0     221,768  Replprov.dll     
   04-Oct-2001  01:36                    986,906  Replsys.sql
   04-Oct-2001  01:36                    881,228  Repltran.sql
   26-Aug-2002  22:49  2000.80.679.0     283,208  Rinitcom.dll     
   16-Sep-2002  22:31                    390,045  Securityhotfix.sql
   26-Aug-2002  22:49  2000.80.679.0      28,672  Sqlagent.dll     
   26-Aug-2002  18:39  2000.80.679.0     311,872  Sqlagent.exe     
   28-Aug-2002  16:32  2000.80.679.0      49,152  Sqlagent.rll
   26-Aug-2002  22:49  2000.80.679.0      53,824  Sqlcmdss.dll     
   28-Aug-2002  16:40  2000.80.679.0      12,288  Sqlcmdss.rll
   24-Oct-2002  17:37  2000.80.695.0     176,696  Sqlmap70.dll     
   11-Nov-2002  09:52  2000.80.702.0   7,471,185  Sqlservr.exe     
   11-Nov-2002  09:51                 12,633,088  Sqlservr.pdb
   01-Nov-2002  18:56  2000.80.698.0      45,644  Sqlvdi.dll       
   01-Nov-2002  18:00  2000.80.697.0      82,492  Ssnetlib.dll     
   07-Apr-2002  02:08  2000.80.606.0      70,208  Xplog70.dll      
   07-Apr-2002  02:08  2000.80.606.0      53,828  Xpqueue.dll      
   07-Apr-2002  02:08  2000.80.606.0     156,228  Xprepl.dll       
   12-Jul-2002  01:00  2000.80.658.0     279,104  Xpstar.dll       
   16-Sep-2002  23:12  2000.80.686.0      98,872  Xpweb70.dll   
				
備忘稿
  • 由於檔案相依性最新版 Hotfix 或包含檔案的功能也可能包含其他檔案。
  • Hotfix 8.00.0702 是已套用 SQL Server 2000 SP2 的電腦。如果您在安裝 SQL Server 2000 SP3 安裝 SQL Server 2000 SP3 彙總套件版本 8.00.0765。

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。 這個問題,首先已經在 Microsoft SQL Server 2000 服務套件 4 中獲得修正。

其他相關資訊

Hotfix 8.00.0702 如何減少爭用

Hotfix 8.00.0702 引入混合的分頁配置使用循環配置資源演算法。使用此修正程式起始檔案現在會為每個連續的混合的分頁配置不同 (如果存在一個以上的檔案)。這會避免爭用問題由中斷向上透過以相同順序 SGAMs 發生的每一次相同的起始點的火車。SGAM 新的配置演算法是純粹循環配置資源,而不會受限於維護速度相稱比例的填滿。Microsoft 建議您建立 tempdb 資料檔具有相同的大小。

如何實作追蹤旗標-T1118 減少爭用

以下是如何清單使用的 -T1118 減少爭用情形:
  • -T1118 是全伺服器設定。
  • 包括 -T1118 追蹤為 SQL Server 的啟動參數的旗標,所以即使 SQL Server 是回收之後,會作用中保持追蹤旗標。
  • -T1118 移除伺服器上的幾乎所有單一頁面配置。
  • 停用大部分的單頁配置,您就可以減少爭用 SGAM 頁面上。
  • -T1118 開啟 ON,幾乎所有的新配置會執行一個 GAM 從頁面 (如範例 2: 1: 2) 的配置 8 個網頁 (1 少見) 一次相較於單一頁面的物件沒有追蹤旗標的物件的前 8 個頁面的範圍從。
  • IAM 分頁仍然使用單頁配置從 SGAM] 頁面,即使有 -T1118 開啟 ON。不過,加 Hotfix 8.00.0702 及增加的 tempdb 資料檔淨效果時減少爭用 SGAM 頁面上。空間考量請參閱本文的缺點 > 一節]。
附註追蹤旗標 1118年開啟您的執行個體的 SQL Server 2000 時, 可能無法成功地還原 SQL Server 7.0 資料庫。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
837938當您嘗試還原的 SQL Server 2000 執行個體上的 SQL Server 7.0 資料庫備份時,可能會收到錯誤訊息

增加 tempdb 資料檔與相等的調整大小的數目

如果 tempdb 資料檔大小是 5 GB,並記錄檔案大小為 5 GB,建議事項是增加到 10 (每個來維護相等的調整大小的 500 MB,) 單一的資料檔並保持原狀記錄檔。有不同的磁碟上不同的資料檔案就是很好。不過,這不是必要的且它們可以同時存在相同的磁碟上。

tempdb 資料檔的最佳的數目,取決於在 tempdb 中所看到的爭用的程度。做為起點,您可以設定至少等於指派給 SQL 的處理器數目的 tempdb 伺服器。對於較高的結束系統 (比方說 16 或 32 proc),起始的編號可能是 10。如果不減少爭用,您可能必須增加更多的資料檔案數目。

附註雙核心處理器會被視為兩個處理器。

相等的調整大小的資料檔案是很重要,因為相稱比例的填滿演算法根據檔案的大小。如果資料檔案會建立具有不相等的大小,相稱比例的填滿演算法會嘗試使用 GAM 配置的更多的最大檔案而非分配之間的所有檔案,藉此擊敗建立多個資料檔案的目的配置。

tempdb 資料檔 auto-grow 也會干擾相稱比例的填滿演算法。因此,可能會關閉 auto-grow 功能為 tempdb 資料檔案是個不錯的作法。如果 auto-grow 選項關閉您必須確定建立資料檔案,讓它們是夠大,以防止伺服器遇到與 tempdb 的磁碟空間不足。

具有相等的調整大小如何增加 tempdb 資料數量檔案會減少爭用

以下是如何增加具有相等的調整大小的 tempdb 資料檔案數目減少爭用的清單:
  • tempdb 的 [一的資料檔僅有您一的 GAM 頁及 SGAM 頁的每一個 4 GB 的空間。
  • 有效地增加 tempdb 的資料檔案相同的大小與數目會建立一或多個 GAM 和 SGAM 網頁針對每個資料檔案。
  • GAM 配置演算法提供出一個範圍一次 (八個連續的分頁) 從循環配置資源方式中的檔案數目時榮耀相稱比例的填滿。因此,如果您有 10 個相等的大小的檔案,第一個配置是從檔案 1,File2,從第二個從 File3 和等等,第三個。
  • 因為八個分頁都標記為 FULL 一次,因為 GAM 配置頁面,將減少資源爭用 PFS 頁面。

缺點

稍早提到的建議以唯一的缺點是您可能會看到當下列情況成立時,提高資料庫的大小:
  • 在使用者資料庫中建立新的物件。
  • 每個新的物件佔用小於 64 KB 的儲存空間。
如果下列情況皆成立時,可能會配置 64 KB (8 頁 * 8 KB = 64 KB) 只需要 8 KB 的空間的物件因此浪費 56 KB 的儲存體。不過,如果新的物件將使用超過 64 KB (8 頁) 中的存留期 (Lifetime),就會使用追蹤旗標沒有缺點。因此,在最糟的大小寫案例 SQL Server 可能最後只永遠不會成長超過一 (1) 頁面的新物件的第一個配置期間配置七個 (7) 其他頁面。

?考

如需有關 GAM、 SGAM、 PFS 及 IAM 的詳細資訊,請參閱下列的 SQL Server 2000 線上叢書 》 主題:
  • 「 管理物件所使用的空間 」
  • 管理範圍配置與可用空間 」
  • 「 資料表與索引架構 」
  • "堆積結構"

屬性

文章編號: 328551 - 上次校閱: 2009年3月13日 - 版次: 12.0
這篇文章中的資訊適用於:
  • 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 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
關鍵字:?
kbmt kbhotfixserver kbqfe kbsqlserv2000presp4fix kbfix kbbug KB328551 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:328551
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com