您目前已離線,請等候您的網際網路重新連線

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

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:917047
結論
Microsoft SQL Server 需要 I/O 子系統,用來儲存系統與使用者資料庫完全受限於特定的 I/O 主體透過預先寫入記錄 (WAL) 需求。這些需求都必須接受交易的 ACID 屬性: 不可部分完成的一致、 隔離式和持續性。I/O 子系統循規的需求的詳細資料提供下列參考:下列清單是需求的簡短摘要:
  • 必須維護寫入順序。
  • 必須維護相依寫入一致性。
  • 中/穩定的媒體上,必須總是安全性寫入。
  • 損毀的 I/O 防止一定會發生。
持續性維護仍然會保留對其他所有資料庫很重要,但可能會比較不嚴謹的tempdb資料庫。下表摘要說明幾個重要的 I/O 需求,SQL Server 資料庫。
I/O 需求簡短描述系統或使用者tempdb
寫入順序

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

在中斷求生

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

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

若要確保成功的復原處理程序的復原和損毀修復,例如記錄檔資料錄必須正確儲存穩定的媒體上之前的資料頁儲存,而不會將它重寫,而接受交易式的屬性。這需要子系統和維護特定的屬性,例如寫入順序磁區對齊,且大小寫,以及其他此類 I/O 安全屬性先前所述的文件中所述的 SQL Server。Tempdb資料庫損毀修復是必要的因為 SQL Server 啟動時永遠初始化資料庫。不過, tempdb資料庫仍然需要復原功能。因此,您可以寬鬆的 WAL 通訊協定的某些屬性。

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

注意SQL Server 2005 的延伸支援或壓縮以讀取只有資料庫和檔案群組。請參閱 SQL Server 2005 線上叢書 》 的完整詳細資料。

是所有的 SQL Server 資料庫,其中包括tempdb資料庫相關的交易式的磁區重新寫入作業。延伸的儲存技術日益增加的各種使用的裝置與公用程式可以重寫 SQL Server 會將視為安全的資料。例如,某些新興技術執行於記憶體中快取處理或資料壓縮。若要避免嚴重的資料庫損毀,任何磁區重新寫入必須完整交易支援的方式如果發生失敗,資料就會回復到前一個磁扇區映像。這可以保證 SQL Server 永遠不會暴露在意外的中斷或資料損毀狀況。

您可以將tempdb資料庫放在特殊子系統,如 RAM 磁碟、 固態或其他高速實作,不能用於其他資料庫上。不過,當您評估這些選項,必須考慮的 〈 其他資訊 〉 一節中所呈現的主要因素。
其他相關資訊
當您評估tempdb資料庫的儲存位置,就應該仔細研究幾個因素。例如, tempdb資料庫使用牽涉到,但不限於記憶體使用量、 查詢計劃和 I/O 決策。適當的調整及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,或您可能會損害及損失的資料。

頁面已快取 (雙精度浮點的 RAM 快取)

暫存資料表就像是資料庫中的所有其他資料表。他們快取緩衝集區,由延遲寫入作業。將暫存資料表分頁儲存在 RAM 磁碟上,會導致快取,一個在緩衝集區中,一個在 RAM 磁碟上的雙精度浮點 RAM。這會直接偏離緩衝集區可能大小總計,而且通常會降低 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 磁碟後,會增加實際的 I/O 為tempdb資料庫,則表示從緩衝集區所採取的記憶體會造成增加的tempdb資料庫活動發生。這種模式是資料庫的指標期望的分頁生命頁面可能也會受到影響負數的方式。
期望的分頁生命期望的分頁生命下滑可以指出增加使用者資料庫的實體 I/O 需求。速率降低可能可能採取從緩衝集區的記憶體強迫提前結束緩衝集區的資料庫分頁。結合與其他標記,並進行測試,以完全了解參數界限。
整體產能
CPU 使用量
擴充性
回應時間
Tempdb資料庫設定變更的主要目標是增加整體的處理量。您的測試應該包含可以橫向擴充,以判斷如何影響輸送量的可重複執行工作負載的混合。

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

交易式磁扇區重寫範例

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

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

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

注意線上 I/O 及復原失敗發生在tempdb資料庫時,會重新啟動 SQL Server 的執行個體。

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

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

若要變更tempdb資料庫的實體位置,請依照下列步驟執行:
  1. 使用 ALTER DATABASE 陳述式和修改檔案子句來變更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。

協力廠商產品認證不是相容性或安全的自行

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

支援

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

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

Microsoft 不保證或驗證的協力廠商產品正確使用 SQL Server。此外,Microsoft 不提供任何擔保、 自行或陳述式的 SQL Server 使用的任何協力廠商產品的適用性。
参考
如需詳細資訊,按一下下面的文件編號,以檢視「Microsoft 知識庫」中的文件:
826433 PRB: 其他 SQL Server 診斷來偵測未回報的 I/O 問題加入
828339 錯誤訊息 823 可能表示硬體問題或在 SQL Server 的系統問題
234656 使用與 SQL Server 快取磁碟機
304261 支援的 SQL Server 中的網路資料庫檔案的描述
913945 Microsoft 不保證協力廠商的產品將使用 Microsoft SQL Server
910716 若要支援遠端鏡像使用者資料庫的 SQL Server 2005 和 SQL Server 2000年的需求
917043 評估與 SQL Server 的協力廠商檔案快取系統時,要考慮的關鍵因素
在 Azure Vm 中使用 SSDs 來儲存 SQL Server TempDB 和緩衝區集區擴充功能

在 Azure 的虛擬機器中的 SQL Server 的效能最佳作法

最佳化您的查詢計劃與 SQL Server 2014年基數 Estimator

查詢效能


這份文件中包含的資訊代表 Microsoft Corporation 的發行集的日期當天所討論的問題上目前的檢視。因為微軟必須回應變化的市場情況,不應被解釋為微軟,承諾,Microsoft 不保證出版物的日期之後並顯示任何資訊的正確性。

這本白皮書是僅供參考之用。MICROSOFT 發佈不做任何擔保,明示、 默示或法定有關此文件中的資訊。

遵守所有適用之著作權法是使用者的責任。不限制著作權之下的權利,這份文件的任何一部分都可能重製、 儲存於或導入擷取系統、 資料庫或以任何形式或藉任何方式 (電子、 機械、 影印、 錄音錄影、 或其他原因) 或作為任何用途,Microsoft Corporation 書面許可情況。

Microsoft 可能擁有專利權、 專利申請、 商標、 著作權或其他智慧財產權這份文件中主題事務。除非所明示規定 Microsoft 書面的授權合約,這份文件書面並不授予您任何這些專利權、 商標、 著作權或其他智慧財產權。

保留一切權利。所有,並保留一切權利。

Microsoft、 視窗、 Windows 伺服器和 SQL Server 會在美國及 (或) 其他國家/地區的 Microsoft 公司的商標或註冊的商標。
SQL Server 需要系統,以支援 「 保證的傳遞到穩定媒體 」 為外框的 underthe SQL Server I/O 可靠性程式需求.如需有關 SQL Server 資料庫引擎的輸入與輸出需求的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
967576 Microsoft SQL Server 資料庫引擎輸入/輸出需求


警告:本文為自動翻譯

內容

文章識別碼:917047 - 最後檢閱時間:05/15/2015 13:39:00 - 修訂: 2.0

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, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2014 Business Intelligence, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web

  • kbsql2005setup kbsql2005engine kbexpertiseadvanced kbinfo kbmt KB917047 KbMtzh
意見反應
ar Ctrl = ""; document.write("