Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

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 或 1%。 或者,您也可以使用小型手動成長來增加交易記錄檔。

  • 交易記錄檔會隨著小幅增加而增加。 一段時間後,交易記錄檔會很大。

    例如,交易記錄檔從 100 MB 增加到 10 GB。 交易記錄檔在每次成長時都會增加一百萬二千萬位元組。

在此案例中,您可能會遇到下列問題:

  • 如果要復原大量工作,則資料庫啟動時的資料庫復原速度會很慢。

    例如,交易會等待開啟很長一段時間。 或者,當SQL Server關機或重新開機時,不會發生大量小型交易。 在此情況下,您可能會在分析階段、復原階段或重做階段中收到長估計復原時間的錯誤。 錯誤與下列類似,且會記錄在 SQL Server 2005 錯誤記錄檔中:

    分析資料庫「mydatabase」 (7) 完成 0%, (大約 1234 秒仍) 。 這是僅限資訊的郵件。 不需要使用者動作。

  • 如果資料庫連線至線上,則完整資料庫備份檔案及其他交易記錄順序還原時,資料庫復原速度會很慢。

    注意 若要在還原作業期間將資料庫連線至線上,請使用 WITH RECOVERY 語法或 WITH STANDBY = <選項> 語法。

  • 在鏡像配對中的合作夥伴伺服器上,資料庫鏡像復原速度很慢。

  • 進行交易性複寫之記錄程式代理程式的進度緩慢,適用于下列作業:

    • 系統會剖析發行者資料庫的交易記錄。

    • 命令會新增至通訊資料庫。

    • 交易隨即複製。

  • 如果記錄了許多交易,或是交易記錄持續使用很長一段時間,資料庫快照集建立時,就會發生效能緩慢的情況。 發生此問題是因為快照集必須執行復原,且必須回復交易記錄。

  • 當您使用 DBCC CHECKDB 語法建立隱藏的資料庫快照集,而該快照集必須完全復原資料庫快照集才能執行一致性檢查時,就會發生效能緩慢的情況。

原因

發生這些問題的原因在於,當SQL Server在下列作業期間掃描這些 VLF 時,交易記錄檔中的虛擬記錄檔 (VLFs) 可能會導致效能變慢:

  • 資料庫復原

  • 資料庫鏡像

  • 資料庫快照集

  • 資料庫事務性複寫記錄程式活動

當資料庫的交易記錄檔在極端成長狀況期間以小幅度遞增而增加時,數千到數十萬個 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 中發行。

注意:由於組建是累積的,因此每個新的修正版本都包含所有 Hotfix 以及先前的 SQL Server 2008 修正版中包含的所有安全性修正程式。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正程式版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

970365 SQL Server 2008 Service Pack 1 發行之後發行的 SQL Server 2008 組建,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 中發行。

注意:由於組建是累積的,因此每個新的修正版本都包含所有 Hotfix 以及先前的 SQL Server 2008 修正版中包含的所有安全性修正程式。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正程式版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2402659 SQL Server 2008 Service Pack 2 發行後發行的 SQL Server 2008 組建 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 中發行。

注意:由於組建是累積的,因此每個新的修正版本都包含所有 Hotfix 以及先前的 SQL Server 2005 修正程式版本中包含的所有安全性修正。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正程式版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

960598 SQL Server 2005 Service Pack 3 發行之後發行的 SQL Server 2005 組建,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 中發行。

注意:由於組建是累積的,因此每個新的修正版本都包含所有 Hotfix 以及先前的 SQL Server 2005 修正程式版本中包含的所有安全性修正。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正程式版本。

您必須將 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欄:
    從 DISK='C:\folder\file.trn'

    還原 HEADERONLY 您可以決定避免還原記錄備份檔案。 或者,您可以使用 [還原] 命令中的 STOP AT 語句,避免交易記錄高度分散的部分。 如果您未在失敗復原案例期間完全還原記錄順序到最新時間點,資料庫SQL Server中會發生資料遺失。 發生此資料遺失的原因,並非所有交易都會保留。 因此,有一項商務取捨決定。 您可以完全還原高度分散的交易記錄。 不過,這項作業可能需要數小時。 或者,您可以在復原中使用 STOP 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 Developer Network (MSDN) 網站:

      如何使用 SSMS 備份交易記錄檔如需如何使用 Transact-SQL 語句備份交易記錄檔的詳細資訊,請流覽下列 MSDN 網站:

      如何使用 Transact-SQL 語句備份交易記錄檔

    2. 若要判斷交易記錄檔的邏輯名稱,請執行下列其中一項陳述。
      聲明 1
      exec sp_helpfile Statement 2
      從 sys.sysfiles 選取 * 若要將交易記錄檔的大小縮減為所要的大小,請使用下列程式碼:DBCC SHRINKFILE (transactionloglogicalfilename、TRUNCATEONLY)

    3. 您可以將交易記錄檔的大小增加到適當的大小。 我們建議您讓交易記錄檔的大小變成一般大小的尖峰。 因此,避免自動增加增量。 若要設定交易記錄的大小,請使用 SSMS 中的 [ 資料庫內容 ] 頁面,或使用下列 ALTER DATABASE 語法:修改檔案 ( NAME = transactionloglogicalfilenae,SIZE=newtotalsize MB)
      如需如何在 SSMS 中增加資料庫大小的詳細資訊,請造訪下列 MSDN 網站:

      如何在 SSMS 中放大資料庫如需 ALTER DATABASE 修改檔案語法的詳細資訊,請造訪下列 MSDN 網站:

      ALTER DATABASE 修改檔案語法的一般資訊

其他相關資訊

您可以檢閱 SQL 錯誤記錄檔,然後在每個交易記錄檔中找出記錄順序編號 (LSN) ,來檢查 VLF 區段的數目。 LSN 中冒號前面的第一個數位會對應到 LSN 的數位。

例如,LSN 第一封資訊郵件中的第一個數位是 1。 不過,LSN 第二則資訊郵件中的第一個數位會100001。 在此案例中,在第一封資訊郵件和第二封資訊郵件之間使用 100,000 個 VLF。 因此,記錄的分散交易記錄有許多虛擬記錄檔 (VLF,) 如下所示:
 

{Log 已備份。 資料庫:mydbname,建立日期 (時間) :2010/07/08 (12:36:46) , 第一個 LSN:1:5068:70,最後一個 LSN:1:5108:1,轉儲裝置數量:1,裝置資訊: (FILE=1,TYPE=DISK:{'C:\folder\logbackup1.trn'}) 。 這是僅限資訊的郵件。 不需要使用者動作。

記錄已備份。 資料庫:mydbname,建立日期 (時間) :2010/07/08 (15:36:46) , 第一個 LSN:100001:5108:1、最後一個 LSN:100002:5108:1、轉儲裝置數量:1、裝置資訊: (FILE=2、TYPE=DISK:{'C:\folder\logbackup2.trn'}) 。 這是僅限資訊的郵件。 不需要使用者動作。}

下表提供有關產品或工具的詳細資訊,這些產品或工具會自動檢查您在SQL Server實例和評估規則之SQL Server版本中的「症狀」一節中所述的條件。
 

規則軟體

規則標題

規則描述

評估規則的產品版本

System Center Advisor

SQL Server使用事務性複寫時,記錄程式代理效能可能會因為交易記錄的大小或 VLF 的數目而受到影響

在此SQL Server實例顧問偵測到目前狀態交易複寫的 VLF 或 TLOG 大小大幅增加。 記錄閱讀程式代理程式效能會受到交易記錄或 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 軟體更新所使用的標準術語說明

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×