tempdb 資料庫的 Microsoft SQL Server I/O 子系統需求

文章翻譯 文章翻譯
文章編號: 917047 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

Microsoft SQL Server 會要求用來完全儲存系統與使用者資料庫的 I/O 子系統受限於特定的 I/O 主體透過預先寫入記錄 (WAL) 需求。 這些需求所需受限於交易的 ACID 屬性: 不可部分完成,一致、 Isolated 和 Durable。 I/O 子系統規範需求的詳細資料,就會看到下列參考:下列清單是需求的快速摘要:
  • 必須維護寫入排序作業。
  • 必須維護相依寫入一致性。
  • 寫入必須永遠受到保護,在/穩定媒體上。
  • 必須發生損毀的 I/O 預防。
持續性維護保持對其他所有資料庫很重要,但可能鬆散 tempdb 資料庫。下表摘要說明幾個重要的 SQL Server 資料庫的 I/O 需求。
摺疊此表格展開此表格
I/O 需求簡短描述系統或使用者tempdb
寫入排序

相依的寫入一致性
維護正確的順序寫入作業的子系統的能力。這可以是針對鏡像方案、 群組一致性需求和 SQL Server WAL 通訊協定使用特別重要。所需建議使用
在寫入後讀取任何寫入成功完成後發出讀取時,子系統到服務的能力會讀取要求有最新的資料映像。所需所需
求生跨中斷資料來維持完全能力保持不變 (Durable) 的中斷跨例如系統重新啟動。所需不適用
損壞的 I/O 預防若要避免分割個別的 I/O 要求系統的能力。所需建議使用
請重寫磁區磁區可以只寫入完整,而且無法改寫因為鄰近的磁區上的寫入要求。* 之下正常動作,僅允許如果交易* 之下正常動作,僅允許如果交易
Hardened 資料當寫入要求時或 FlushFileBuffers 操作已順利完成期望,資料已經儲存到穩定媒體。所需不適用
實體磁區對齊方式和大小SQL Server interrogates 資料和記錄檔案儲存位置。 所有裝置都都需要支援允許 SQL Server,以執行寫入實體磁區對齊的界限上和磁區大小的倍數的磁扇區屬性。所需所需
* 交易式磁扇區 rewrites 涉及完整記錄的作業所允許完全移動、 取代,或復原到原始影像的磁區子系統。 這些 rewrites 通常是因為額外的負荷執行這類動作所需的之下正常動作。 這就會移動檔案資料的磁碟重組公用程式。 無法與新的磁扇區位置取代原來的磁區,在檔案中,直到新的磁碟分割開機磁扇區和資料都完全受到保護。 重新對應之磁區必須位於交易式的方式,以便包括電源中斷任何失敗會使原始資料 re-establishment。 請確定您具有可用在這種程序來防止不正確的資料存取時的鎖定機制藉此 upholding 的 SQL Server I/O 其他 tenants。

求生跨中斷

tempdb 資料庫是為 SQL Server 的草稿區,並且在每個 SQL Server 啟動時重建。 初始設定會取代任何需要資料存活下來重新啟動電腦。

交易式磁扇區重新寫入作業

若要保證在修復處理程序的如復原和損毀修復成功記錄檔資料錄必須正確地儲存穩定媒體上之前資料頁儲存,且無法重新撰寫不含榮耀交易式的屬性。 這需要子系統和 SQL Server,以維護等寫入訂購,磁扇區對齊及大小寫的特定屬性及其他這類 I/O 安全屬性先前所提的文件所述。 tempdb] 資料庫的損毀修復是沒有必要的因為資料庫永遠初始化在 SQL Server 啟動時。但是,tempdb 資料庫仍然需要復原功能。 因此,WAL 通訊協定的某些屬性可以被鬆散。

tempdb 資料庫存放位置必須嚴格根據已建立的磁碟機的通訊協定中的作用。 所有的方式儲存 tempdb 資料庫裝置必須出現,而充當之後寫入功能提供讀取的實體磁碟。 交易磁扇區重新寫入作業可能的額外需求的特定實作。 比方說 SQL Server 並不支援藉由使用 NTFS 檔案系統壓縮,因為 NTFS 壓縮可以重寫記錄檔已經已撰寫並被視為的磁區的修改強化的資料庫。 在這種類型的重新寫入期間失敗會造成資料庫無法使用損壞的資料已經被視為安全的 SQL Server。

附註SQL Server 2005 擴充支援或壓縮讀取資料庫和檔案群組。 請參閱 [SQL Server 2005 線上叢書 》 以完整的詳細資訊。

是交易式磁扇區重新寫入作業,包括 tempdb 資料庫的所有 SQL Server 資料庫的相關。 日益增加各種擴充的儲存體技術使用裝置和公用程式可以重寫 SQL Server 會將視為安全的資料。 比方說某些新興的技術執行記憶體中快取] 或 [資料壓縮。 若要避免嚴重的資料庫損毀,任何磁扇區重新寫入必須一種有完整的交易式支援在失敗發生資料會恢復為先前的磁扇區影像。這可以保證 SQL Server 永遠不會公開給的意外的中斷或資料損毀狀況。

您可以將 tempdb 資料庫放在如 RAM 磁碟、 實心狀態或其他不能用於其他資料庫的高速實作的特殊專長子系統上。 但是,您評估這些選項時,必須視為 「 其他資訊 」 一節所提出的關鍵因素。

其他相關資訊

當您評估 tempdb 資料庫的儲存位置數個因素應該是仔細研究。比方說 tempdb 資料庫使用方式牽涉到,但不限於記憶體耗用量、 查詢計劃和 I/O 決策。 適當 tuning 和實作 tempdb 資料庫可以提升延展性和系統的回應速度。 這一節將討論在決定儲存體需求 tempdb 資料庫的關鍵因素。

高速度子系統

提供 SQL Server I/O 子系統的通訊協定需求,但是,不提供媒體的耐久性市面上有各種的高速子系統實作可用。

重要永遠確認與產品廠商聯絡,以保證 SQL Server I/O 需求的完整遵守。

RAM 磁碟是這類實作的其中一個常見的範例。 RAM 磁碟安裝必要的驅動程式,並啟用主 RAM 磁碟來顯示成以及函式和任何連接到系統的磁碟機一樣的一部份。 所有的 I/O 子系統應該提供完整符合 SQL Server I/O 需求。但是,十分明顯 RAM 磁碟不是長期的媒體。 因此,例如 RAM 磁碟實作只可以做為 tempdb 資料庫的位置,而且無法使用的其他資料庫。

機碼,請考慮實作和部署之前

有各種 tempdb 資料庫,在這種子系統上部署之前,先考慮的事項。 這一節為基礎使用 RAM 磁碟的討論區,但類似的結果會發生在其他高速的實作。

I/O 安全

寫入及交易式磁扇區寫入後讀取規範是必須。 永遠不會部署並不完全支援 SQL Server I/O 的需求的系統上的 [SQL Server 或風險的損失和您的資料遺失。

網頁已經快取 (Double RAM 快取)

暫存資料表就像是資料庫中的所有其他資料表。 它們是由緩衝集區快取,而處理暫緩寫入作業。 將暫存資料表分頁儲存在 RAM 磁碟上會導致快取,一個緩衝區集區中,一個 RAM 磁碟上的雙精度浮點 RAM。這直接偏離緩衝集區 ’s 可能大小總計,而且通常會因而降低 SQL Server 的效能。

放棄 RAM

RAM 磁碟指定主 RAM 的一部分,正如名稱所示。 沒有可用的 RAM 磁碟和 RAM 為基礎的檔案快取的幾個實作。有些也啟用實體 I/O,備份作業。 RAM 基礎檔案快取的索引鍵的項目是它直接偏離可以在 SQL Server 所用的實體記憶體。 永遠會有增強式舉證該加入 RAM 為基礎的檔案快取可以改善應用程式效能和不會降低其他查詢或應用程式的效能。

第一次調整

應用程式應該調頻到移除不必要的和不想要的排序,並可能導致 tempdb 資料庫使用的雜湊。 多次加入的索引可以移除需要排序或雜湊計劃中完全,通往達到最佳效能,而不需要使用 tempdb 資料庫。

可能的好處點

tempdb 資料庫放高速的系統上的優點只可以透過嚴格的測試和應用程式工作負載的度量值來決定。 工作負載有仔細研究的特性,tempdb 資料庫可能受益,並必須在部署之前確認 I/O 安全。

一起 SQL Server 記憶體經理,來判斷每個排序或雜湊作業在記憶體草稿區的大小,工作排序] 和 [雜湊作業。 當排序或雜湊資料超過配置的記憶體中草稿區,tempdb 資料庫可能會寫入資料。 這個演算法已經在 SQL Server 2005 透過較早版本的 SQL Server 減少 tempdb 資料庫使用需求中展開。 比方說利用純粹的強制的排序資料表的遞減順序和相同的硬體設定 SQL Server 2005 沒有索引會顯示在 SQL Server 2000 明顯的改進。

警告SQL Server 的設計被為了進行牽涉到使用 tempdb 資料庫作業的查詢計劃決策時,負責記憶體層級和目前的查詢活動。 因此,效能獲得明顯依據工作負載和應用程式的設計有所不同。 我們強烈建議您完成測試以判斷可能提高與評估 I/O 安全需求,這類部署前的慣用的解決方案。

SQL Server 會使用 tempdb 資料庫處理涉及排序、 雜湊、 資料列版本儲存區的各種活動和暫存資料表:
  • 暫存資料表由一般的緩衝區集區常式資料頁面的維護與通常並不展示區從特殊專長子系統實作的效能優點。
  • tempdb 資料庫做草稿區中為雜湊和排序。降低這類作業的 I/O 延遲可能會很有幫助。 然而,知道新增若要避免雜湊或排序索引可能會提供類似的好處。
與及不儲存在高速子系統來比較優勢的 tempdb 資料庫,請執行基準線。 部份測試應該包括針對使用者資料庫的查詢不包含排序、 雜湊或暫存資料表而且然後確認 [這些查詢並不會有不利影響。 當您評估系統時,下列效能指標很有幫助。
摺疊此表格展開此表格
指示器描述及使用方式
頁面讀取及寫入改善效能的 tempdb 資料庫 I/O 可能會變更的速率頁面讀取和寫入的使用者資料庫因為 tempdb 資料庫 I/O 與相關減少延遲。使用者資料庫頁面的整體的數字不應該在相同的工作負載之間而有所不同。
實體的讀取和寫入位元組到 tempdb 資料庫如果將 tempdb 資料庫移到如 RAM 磁碟裝置會增加 tempdb 資料庫的實際 I/O,則表示取自開緩衝集區記憶體造成增加的 tempdb 資料庫活動發生。這種模式是指示器資料庫的期望分頁生命網頁可能也會受到影響負數的方式。
期望分頁生命在期望分頁生命拒絕可以指出使用者資料庫實體的 I/O 需求的增加。 速率減少可能很可能表示取自開緩衝集區記憶體會強迫過早結束緩衝集區的資料庫分頁。結合與其他指示器,然後測試為充分了解參數界限。
整體產能
CPU 使用率
延展性
回應時間
tempdb 資料庫設定變更的主要目標是要增加整體產能。 您的測試應該包括可以橫向擴充,以判斷如何影響輸送量的可重複工作負載的混合。

壓縮為基礎的 RAM 磁碟實作類似可能適用於 10 個使用者。不過,增加工作負載與這可能會超過所需的程度發送 CPU 層級,而且有高工作負載時的回應時間的負面影響。 則為 True 的壓力測試和未來的負載預測測試是我們強烈建議。
工作檔案和工作表建立動作如果將 tempdb 資料庫移到如 RAM 磁碟裝置藉由增加數字或工作的檔案或工作資料表的大小變更查詢計劃,表示取自開緩衝集區記憶體造成增加的 tempdb 資料庫活動發生。這個模式會指出資料庫分頁的期望分頁生命也可能影響負數的方式。

交易式磁扇區重寫範例

下列範例 elaborates 資料所需的 SQL Server 資料庫的安全性。

假設 RAM 磁碟廠商使用記憶體中壓縮實作。 實作必須正確封裝藉由提供實體檔案資料流的外觀,如同對齊磁區,而且大小因此 SQL Server 是不知道並正確地保全從基礎的實作。 查看壓縮範例更接近。
摺疊此表格展開此表格
動作
磁區 1 會寫入至裝置,並壓縮為節省空間。
磁區 2 會寫入至裝置,並以磁區 1 來節省空間壓縮。
裝置可能會執行下列動作來協助保護磁區 1 ’s 資料組合以磁區 2 ’s 資料時。
摺疊此表格展開此表格
動作
封鎖所有寫入磁區 1 和 2。
解壓縮磁區 1 到可用區域離開目前的磁區 1 儲存為要擷取作用中的資料。
壓縮磁區 1 與 2 成新的儲存格式。
封鎖所有的讀取和寫入的磁扇區 1 和 2。
交換舊的儲存區 1 和 2 的磁區與新的存放裝置。
如果交換嘗試失敗 (復原):
  • 還原原始的儲存體的磁扇區 1 和 2。
  • 確定要移除草稿區的磁區 1 與 2 結合資料。
  • 失敗 2 磁扇區寫入作業。
解除封鎖讀取和寫入的磁扇區 1 和 2。
提供磁扇區修改周圍的鎖定機制,則進行復原所做的變更,磁扇區交換嘗試失敗時能夠被視為 transitionally 相容。 為使用實體儲存體的延伸支援的實作它包括適當的交易記錄檔方面,保護和復原已套用到磁碟上結構來維護 SQL Server 資料庫檔案的完整性的變更。

可讓重新寫入的磁扇區的任何裝置必須支援 rewrites 以交易式的方式,讓 SQL Server 不會公開給資料遺失。

附註tempdb 資料庫中的線上 I/O 和復原失敗發生時,會重新啟動 SQL Server 執行個體。

當您移動 tempdb 資料庫時要小心

當您移動 tempdb 資料庫,因為如果無法建立 tempdb 資料庫,SQL Server 將不會啟動時要小心。 如果無法建立 tempdb 資料庫,啟動 SQL Server 藉由使用 (-f) 啟動參數,並移動 tempdb 資料庫到有效的位置。

若要變更 tempdb 資料庫的實體位置,請依照下列步驟執行:
  1. 使用 ALTER 資料庫陳述式和改裝 FILE 子句變更實體檔案名稱的每個檔案在 tempdb 資料庫,以參考新的實體位置,例如
    Alter database tempdb modify file 
    (name = tempdev, filename = 'C:\MyPath\tempdb.mdf')
    
    Alter database tempdb modify file 
    (name = templog, filename = 'C:\MyPath\templog.ldf')
    該新磁碟。
  2. 停止並重新啟動 SQL Server。

協力廠商產品認證並不相容性] 或 [安全的 guaranty

第三方廠商產品或特定供應商可以接收 Microsoft 標誌憑證。 不過,協力廠商憑證或特定的 Microsoft 標誌並不證明相容性或適合特定用途 SQL Server 中。

支援

如果子系統使用 SQL Server 支援 I/O 保證交易式資料庫使用本文所述的 Microsoft 將會提供 SQL Server 和 SQL Server 為基礎的應用程式的支援。不過,發出含有,或因,子系統將會參照製造廠商。

tempdb 資料庫相關問題的 Microsoft 支援服務會要求您將 tempdb 資料庫重新放置。 請連絡您的裝置廠商,請確認您已正確部署和設定交易式資料庫使用的裝置。

Microsoft 不保證或驗證的協力廠商產品正常運作的 SQL Server。此外,Microsoft 並不提供任何擔保、 guaranty 或陳述式的 SQL Server 搭配使用的任何協力廠商產品 ’s 售。

?考

如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件]:
826433PRB: 偵測未回報的 I/O 問題加入額外的 SQL Server 診斷
828339錯誤訊息 823 可能表示硬體問題或在 SQL Server 的系統問題
234656使用 SQL Server 快取磁碟機
110352Microsoft SQL Server 效能最佳化
304261支援在 SQL Server 網路資料庫檔案的描述
913945Microsoft 並不保證協力廠商的產品將使用 Microsoft SQL Server
910716若要支援遠端鏡像使用者資料庫 SQL Server 2005 及 SQL Server 2000 的需求
917043評估協力廠商檔案快取系統與 SQL Server 時要考慮的關鍵因素
這份文件中所含的資訊代表 Microsoft Corporation 的目前檢視上作為的出版日期所討論的問題。 由於 Microsoft 必須回應變化的市場情況,它應該不解譯為 Microsoft 的承諾,Microsoft 不保證出版物的日期之後的任何資訊的正確性。

這本白皮書是僅供參考之用。 Microsoft 會使得不擔保責任明示,默示,或法定以本文件中的資訊。

遵守所有適用之著作權法是使用者的責任。 在不影響著作權權利,這份文件的任何一部分可能會重製、 儲存於或導入擷取系統或以任何形式或任何方式 (電子、 機械、 影印、 錄音,或其他方式) 或任何用途未經 Microsoft Corporation 的明示書面許可。

Microsoft 可能擁有專利權、 專利申請、 商標、 著作權或其他智慧財產權這份文件中的主旨。 除非 Microsoft 書面合約另有說明,否則提供本文件並不授予您任何授權這些專利、 商標、 著作權或其他智慧財產權。

c) 2006 Microsoft 公司。 本電腦程式著作。

Microsoft]、 [Windows]、 [Windows Server] 及 [SQL Server 是註冊的商標] 或 [在美國及 (或) 其他國家/地區的 Microsoft 公司的商標。
SQL Server 會要求系統,以支援 ‘ 保證傳遞穩定媒體 ’ Microsoft SQL Server Always-On 存放裝置方案檢閱程式] 下所述。 Fo如 SQL Server 資料庫引擎的輸入與輸出需求的更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
967576Microsoft SQL Server 資料庫引擎的輸入/輸出需求

屬性

文章編號: 917047 - 上次校閱: 2007年11月2日 - 版次: 1.6
這篇文章中的資訊適用於:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
關鍵字:?
kbmt kbsql2005setup kbsql2005engine kbexpertiseadvanced kbinfo KB917047 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:917047
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