修正: 效能變慢時如果有許多在 SQL Server 2005 中,SQL Server 2008年或 SQL Server 2008 R2 的交易記錄檔內的 Vlf,復原資料庫

文章翻譯 文章翻譯
文章編號: 2455009 - 檢視此文章適用的產品。
Microsoft 發佈的 Microsoft SQL Server 2005年,2008年,以及 2008 R2 修正為一個可下載的檔案。修正程式是累積的因為每個新版本包含所有的 hotfix,和前一個 SQL Server 2005,2008年 2008 R2 隨附的所有安全性修正都修正版本。
全部展開 | 全部摺疊

在此頁中

徵狀

請考慮如下案例:
  • 您的電腦上安裝 Microsoft SQL Server 2005年,Microsoft SQL Server 2008年或 Microsoft SQL Server 2008 R2。
  • 一或多個資料庫都在完整或大量記錄復原模式。
  • 資料庫交易記錄檔的初始大小很小。然而,交易檔變大。
  • 自動成長 成長遞增值的交易記錄檔被設定為較小的大小。例如, 自動成長 成長遞增值被設定為 1 mb 或一個百分比。或者,您將使用小型的手動成長,增加交易記錄檔。
  • 交易記錄檔成長的小的成長遞增值。在一段時間之後, 是大型交易記錄檔。

    例如,交易記錄檔從多達一百個 mb 擴充,10 gb。交易記錄檔成長,藉由每個成長率的 1 mb 遞增。
在這個案例中,您可能會遇到下列問題:
  • 如果有大量的復原工作啟動資料庫時,資料庫復原很慢。

    例如,交易擱置開啟是長的時間。或者,許多較小的交易不認可時 SQL Server 關機或重新啟動。在此情況下,您可能會收到錯誤的長估計的復原時間在分析階段、 復原階段中,或取消復原階段。類似下列的錯誤,並且登入 SQL Server 2005 錯誤記錄檔:
    分析資料庫 'mydatabase' (7) 是完成 0%(持續大約 1234 的秒數)。這是僅資訊性訊息。使用者不不需要任何動作。
  • 如果資料庫帶到線上還原完整資料庫備份的檔案和其他交易記錄順序時,資料庫復原速度很慢。

    附註 若要使資料庫連線還原作業期間,使用 復原 語法或 待命 = <options></options> 語法。
  • 資料庫鏡像復原速度很慢夥伴伺服器上鏡像組中。
  • 交易式複寫記錄讀取器代理程式的進度太慢針對下列作業:
    • 發行者資料庫的交易記錄檔會剖析。
    • 命令被加入至散發資料庫。
    • 複寫交易。

    附註 如需詳細資訊,請造訪下列 Microsoft 開發人員網路 (MSDN) 網站:
    949523 交易式複寫的延遲偏高 SQL Server 2005 中,當 [初始大小] 屬性的值,並自動成長屬性的值都很小
  • 如果許多的交易有記錄,或長時間保持作用中交易記錄檔建立資料庫快照集時,就會發生效能變慢。快照集執行復原,而且必須復原交易記錄檔,就會發生這個問題。
  • 當您使用時,就會發生效能變慢 DBCC CHECKDB 語法,建立了隱藏的資料庫快照集具有完全復原資料庫快照集,來執行一致性檢查。

發生的原因

因為虛擬的記錄檔 (Vlf) 在交易記錄檔中可能會導致效能變慢,當 SQL Server 透過這些 Vlf 掃描在下列作業時,就會發生這些問題:
  • 資料庫復原
  • 資料庫鏡像
  • 資料庫快照集
  • 資料庫交易式複寫記錄讀取器活動
當資料庫交易記錄檔微調變大,在極端的成長狀況期間時,就有一個千分位到數百個 Vlf 有單一的一組交易記錄檔 (.ldf) 檔案內。不過,大型的記錄檔成長大幅度建立只有幾個 Vlf 相較之下。例如,數個可能小於 100 的 Vlf。

附註Vlf 的部門或由交易記錄檔中的 SQL Server 內部使用的區段。

解決方案

累積更新資訊

SQL Server 2008 R2

累積更新 6 中初次發行這個問題的修正程式。如需有關如何取得此累積更新套件的 SQL Server 2008 R2 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2489376 SQL Server 2008 R2 的累積的更新套件 6
附註 因為組建是累計的每個新的修正版本包含所有的 hotfix,所有安全性修正程式先前的 SQL Server 2008 R2 隨附修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
981356 SQL Server 2008 R2 建置 SQL Server 2008 R2 發行之後所發行的

SQL Server 2008 Service Pack 1

SQL Server 2008 Service Pack 1 的第一次這個問題的修正程式釋放累積更新 12。如需有關此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2467236 SQL Server 2008 Service Pack 1 的累積更新套件 12
附註 因為組建是累計的每個新的修正版本包含所有的快速補充程式,並隨附於先前的 SQL Server 2008年的所有安全性修正都修正版本。Microsoft 建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
970365 SQL Server 2008年建置 SQL Server 2008 Service Pack 1 所發行之後所發行的
Microsoft SQL Server 2008 hotfix 會建立特定的 SQL Server service pack。您必須將 SQL Server 2008 Service Pack 1 hotfix 套用至 SQL Server 2008 Service Pack 1 的安裝。根據預設,提供 SQL Server service pack 中的任何 hotfix 包含在下一步的 SQL Server service pack。

SQL Server 2008 Service Pack 2

SQL Server 2008 Service Pack 2 的第一次這個問題的修正程式釋放累積的更新程式 2] 中。如需有關此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2467239 SQL Server 2008 Service Pack 2 的累積更新套件 2
附註 因為組建是累計的每個新的修正版本包含所有的快速補充程式,並隨附於先前的 SQL Server 2008年的所有安全性修正都修正版本。Microsoft 建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
2402659 SQL Server 2008年建置 SQL Server 2008 Service Pack 2 已發行之後所發行的
Microsoft SQL Server 2008 hotfix 會建立特定的 SQL Server service pack。您必須將 SQL Server 2008 Service Pack 2 hotfix 套用至 SQL Server 2008 Service Pack 2 的安裝。根據預設,提供 SQL Server service pack 中的任何 hotfix 包含在下一步的 SQL Server service pack。

SQL Server 2005 Service Pack 3

SQL Server 2005 Service Pack 3 的第一次這個問題的修正程式釋放累積更新 13] 中。如需有關此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2438344 SQL Server 2005 Service Pack 3 的累積更新套件 13
附註 因為組建是累計的每個新的修正版本包含所有的 hotfix,和先前的 SQL Server 2005 隨附的所有安全性修正都修正版本。Microsoft 建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
960598 SQL Server 2005 建置 SQL Server 2005 Service Pack 3 發行之後所發行的
Microsoft SQL Server 2005 hotfix 會建立特定的 SQL Server service pack。您必須將 SQL Server 2005 Service Pack 3 hotfix 套用至的 SQL Server 2005 Service Pack 3 安裝。根據預設,提供 SQL Server service pack 中的任何 hotfix 包含在下一步的 SQL Server service pack。

SQL Server 2005 Service Pack 4

SQL Server 2005 Service Pack 4 的第一次這個問題的修正程式釋放累積的更新程式 1] 中。如需有關此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2464079 SQL Server 2005 Service Pack 4 的累積更新套件 1
附註 因為組建是累計的每個新的修正版本包含所有的 hotfix,和先前的 SQL Server 2005 隨附的所有安全性修正都修正版本。Microsoft 建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
2485757 SQL Server 2005 建置 SQL Server 2005 Service Pack 4 發行之後所發行的
Microsoft SQL Server 2005 hotfix 會建立特定的 SQL Server service pack。您必須將 SQL Server 2005 Service Pack 4 hotfix 套用至 SQL Server 2005 Service Pack 4 的安裝。根據預設,提供 SQL Server service pack 中的任何 hotfix 包含在下一步的 SQL Server service pack。

狀況說明

Microsoft 已經確認這是 「 適用於 」 一節中所列的 Microsoft 產品中的問題。

其他可行方案

安裝此 hotfix,並重新啟動 SQL Server 可能會增進修復效能。例如,可能會改進效能針對下列作業之後您安裝此 hotfix,然後重新啟動 SQL Server:
  • 資料庫復原
  • 資料庫鏡像
  • 資料庫快照集
  • 資料庫交易式複寫記錄讀取器活動

如果您無法安裝此 hotfix,您可以執行降低現有的議題,並防止未來發生下列因應措施。

降低現有的議題

  • 等候還原或修復作業,以完成

    如果您有一個非復原的資料庫,會遇到效能變慢,當您還原或修復資料庫,則您可能要等待完成還原或復原的作業。例如,您可能會看到離線狀態] 或 [非復原資料庫的復原狀態中 SQL Server Management Studio (SSMS)。通常停止 SQL Server 提供較慢的復原沒有洩壓,而且可能要花更多時間來重複相同的修復分析階段、 取消復原階段中,或復原階段。
  • 避免還原包含數千個 Vlf 的交易記錄檔順序

    如果您還原和復原資料庫,藉由使用備份檔案時,您會遇到效能變慢,您可以避免還原包含數千個 Vlf 的交易記錄檔序列。為了識別大部分的虛擬記錄檔的備份檔案會記錄,請使用下列的陳述式中的記錄備份檔案的FirstLSNLastLSN資料行,請參閱:
    還原 HEADERONLY 從 DISK='C:\folder\file.trn'

    您可以決定要避免還原記錄備份檔案。或者,您可以使用 停止 AT 在陳述式 還原 若要避免交易記錄檔非常零散的部分的命令。如果您不在失敗復原案例期間的時間內完全還原到最新的記錄檔序列,則會在 SQL Server 資料庫中發生資料遺失。因為並非所有的交易被保存,就會發生此資料遺失。因此,是商業取捨決策。您可以完全還原高度分散的交易記錄檔。不過,這項作業可能要花費數小時。或者,您可以使用 停止 AT 在停止之前的記錄檔非常零散的部分復原復原的陳述式。不過,您略過任何遺失交易都會遺失。

    附註 不需要安裝此 hotfix,有通常是不安全回數加速復原後重新啟動 SQL Server。SQL Server 必須找出要分析的記錄檔,來取消復原完成交易的 Vlf 的清單,然後復原未完成的交易,以完成復原至安全地使資料庫連線。您安全地不可以在復原期間略過交易。

防止未來發生

  • 將資料庫自動成長增量設定為適當的大小

    如果自動成長遞增值的大小太小,會有多個虛擬記錄檔 (Vlf),而您可能會遇到的 SQL Server 效能變慢。如果自動成長遞增值的大小太大,讓的交易記錄檔自動成長的查詢可能要等待很長的時間完成成長。因此,SQL Server 可能會發生逾時錯誤。若要解決這些問題,您可以設定自動成長遞增值的大小,為您的資料庫,以適當的大小。
  • 消除大量的 Vlf,並用手動執行成長

    如果交易記錄檔中許多的 Vlf,減少的交易記錄檔大小,並讓它之前使用手動執行成長符合要求的尖峰公司增加。例如,交易記錄檔會增加回合理的平均大小在大的遞增值,或單一手動成長率。因此,交易記錄檔的大小達到最大資源容量,以及記錄備份檔案的排程頻繁且定期的基礎。此外,可能會截斷交易記錄檔,並可重複使用交易記錄檔的 Vlf,循環中。
  • 如何壓縮及手動增加交易記錄檔

    若要更正有太多的 Vlf 的記錄檔,請依照下列這些步驟來壓縮記錄檔,並再次以手動方式增加:
    1. 如果資料庫是完整或大量記錄復原模型中,您必須備份交易記錄檔,以允許使用中的 Vlf,會被截斷,並重複使用。
      BACKUP LOG databasename TO DISK='C:\folder\log_backupfile.trn'

      如需有關如何使用 SSMS 來備份交易記錄檔的詳細資訊,請造訪下列 Microsoft 開發人員網路 (MSDN) 網站:
      如何使用 SSMS 來備份交易記錄檔
      如需有關如何使用異動性 SQL 陳述式來備份交易記錄檔的詳細資訊,請造訪下列 MSDN 網站:
      如何使用異動性 SQL 陳述式來備份交易記錄檔
    2. 若要判斷交易記錄檔的邏輯名稱,請執行下列陳述式的其中一個。
      陳述式 1
      exec sp_helpfile 
      陳述式 2
      select * from sys.sysfiles 
      若要減少的交易記錄檔大小需要的大小,請使用下列程式碼:
      DBCC SHRINKFILE(transactionloglogicalfilename, TRUNCATEONLY) 
    3. 您可以增加適當的大小的交易記錄檔的大小。我們建議您讓交易記錄檔的成長到尖峰一般大小的大小。因此, 自動成長 避免遞增值。若要設定的交易記錄檔大小,請使用資料庫屬性] 頁面中 SSMS,或使用下列程式碼 改變資料庫 語法:
      MODIFY FILE ( NAME = transactionloglogicalfilenae, SIZE=newtotalsize MB) 

      如需有關如何增加的 SSMS 中的資料庫大小的詳細資訊,請造訪下列 MSDN 網站:
      如何增加的 SSMS 中的資料庫大小
      如需相關資訊 改變資料庫修改的檔案 語法,請造訪下列 MSDN 網站:
      改變資料庫修改檔案語法的一般資訊

其他相關資訊

藉由檢視 SQL 錯誤記錄檔,然後藉由在每個交易記錄備份檔案中尋找的記錄順序編號 (LSN),您可以檢查 VLF 的線段數目。在 LSNs 中的冒號符號之前的第一個數字會對應到的 LSN 數目。

例如,第一的告知性訊息的 LSN 中的第一個數字為1。不過,第二個的告知性訊息的 LSN 中的第一個數字是100001。在這個案例中,有使用和第二個的告知性訊息的第一的告知性訊息的時間之間的 100000 Vlf。因此,有許多虛擬記錄檔 (Vlf) 的登入分散的交易記錄檔類似下列:

{已備份記錄檔。資料庫: mydbname,建立 date(time): 2010/07/08(12:36:46),第一個 LSN: 1:5068:70,最後的 LSN: 1:5108:1、 傾印裝置數目: 1,裝置資訊: (檔案 = 1,型別 = 磁碟: '{C:\folder\logbackup1.trn'})。這是僅資訊性訊息。使用者不不需要任何動作。

備份記錄檔。資料庫: mydbname,建立 date(time): 2010/07/08(15:36:46),第一個 LSN: 100001:5108:1,最後的 LSN: 100002:5108:1、 傾印裝置數目: 1,裝置資訊: (檔案 = 2,型別 = 磁碟: '{C:\folder\logbackup2.trn'})。這是僅資訊性訊息。使用者不不需要任何動作。}

下表提供的產品或自動檢查條件,在您的 SQL Server 的執行個體和版本的 SQL Server 的評估規則"徵狀 〉 一節所述的工具的詳細資訊。

摺疊此表格展開此表格
規則軟體規則標題規則描述針對規則進行評估的產品版本
系統中心顧問SQL Server 交易式複寫記錄讀取器代理程式的效能可能會受到影響,因為交易記錄檔或 VLF 的數字的大小在這個 SQL Server 執行個體警告器] 偵測到存在交易式複寫,Vlf 或記錄的數目與大小變大。記錄讀取器代理程式的效能造成負面影響的 VLF 數目的交易記錄檔大小。降低交易記錄檔的大小和數目 VLF 改進記錄讀取器代理程式的效能。SQL Server 2008

SQL Server 2008 R2

SQL Server 2012



?考

如需交易記錄檔的實體架構的相關資訊,請造訪下列 MSDN 網站:
交易記錄檔的實體架構的一般資訊

如需有關記錄序號 (LSN) 的詳細資訊,請造訪下列 MSDN 網站:
記錄順序編號的一般資訊

如需有關 1413年錯誤資料庫鏡像啟動時,請造訪下列 MSDN 網站:
1413 錯誤資料庫鏡像啟動時的一般資訊

如需有關記錄檔的檔案結構會如何影響資料庫的復原時間的詳細資訊,請造訪下列 MSDN 網站:
記錄檔的檔案結構會如何影響資料庫的復原時間

如需交易記錄檔 Vlf 的詳細資訊,請造訪下列 MSDN 網站:
交易記錄檔的一般資訊

如需有關如何建立資料庫快照集的詳細資訊,請造訪下列 MSDN 網站:
如何建立資料庫快照集
如需 SQL Server 的累加式的服務模型的相關資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
935897 累加式的服務模型是可以從 SQL Server 小組製作報告的問題的 hotfix
如需有關 SQL Server 更新的命名結構描述的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
822499新的命名結構描述為 Microsoft SQL Server 軟體更新套件的
如需有關軟體更新術語的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
編號 824684 用來描述 Microsoft 軟體更新標準術語的說明

屬性

文章編號: 2455009 - 上次校閱: 2014年1月8日 - 版次: 2.0
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Evaluation Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Standard Edition for Small Business
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
關鍵字:?
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2455009 KbMtzh
機器翻譯
請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。
按一下這裡查看此文章的英文版本:2455009
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