共用方式為


後置設定資料庫最佳化

除了遵循預先設定資料庫優化2的建議之外,還應該遵循幾個步驟,在安裝 BizTalk Server BizTalk Server並設定BizTalk Server資料庫之後,將SQL Server上的資料庫效能優化。 本主題提供這些優化的清單。

請考慮在特定 MessageBox 資料庫資料表上設定 'text in row' 資料表選項

SQL Server提供資料表選項,稱為資料列中的文字,以宣告類型 textNtextimage資料的內容,其維度小於資料頁的內容, (8Kb) 必須儲存在資料列中。 藉由在 BizTalkMsgBoxDb 資料表上設定此選項, (元件資料表、Spool 資料表和 DynamicStateInfo 資料表) ,您可以在使用具有小型內容和協調流程且具有小型持續性大小的小型訊息時,增加訊息輸送量。

  • 元件資料表:當訊息大小小於 8 kb 的資料頁維度時,在 [元件] 資料表上套用[資料列資料表]選項的文字可能會導致效能改善BizTalk Server。 [元件] 資料表包含下欄欄位:

    • ImgPart:包含訊息部分或訊息元件片段。

    • ImgPropBag:包含訊息元件屬性包。

      如此一來,在對 MessageBox 進行迴圈時,在 BizTalk 主機內執行的訊息代理程式可以讀取少量頁面,從 Parts 資料表擷取一批訊息。 根據特定案例和硬體組態,這項技術可以降低SQL Server和BizTalk Server上的 CPU 使用率,並大幅改善延遲和輸送量。

  • 多工緩衝處理資料表:當訊息內容的平均大小小於 8 kb 時,啟用多工緩衝處理資料表上的 [資料列 資料表] 選項,可協助您減少從 MessageBox 讀取訊息及其內容時的存取次數。 若要將此選項套用至多工緩衝處理表,您必須消除不必要的內容屬性和辨別欄位,以減少小於 8 Kb 的訊息內容大小。

  • DynamicStateInfo 資料表 這些資料表是每個主機的一個,包含名為 imgData 的類型影像欄位,其中包含在執行期間遇到持續性點時的二進位序列化協調流程狀態。 當主機 HostA 內的協調流程內部狀態很小,且序列化後的大小小於 8 kb 時,資料 列技術中的文字 可以成功套用至DynamicStateInfo_HostA資料表。 因此,建議您盡可能縮小協調流程的內部狀態。 這項技術可以大幅減少 XLANG 引擎在持續性點時序列化、保存、取消序列化和還原協調流程內部狀態所花費的時間。

    我們在實驗室測試中使用了下列設定:

  • EXEC sp_tableoption N'Spool', 'text in row', '6000'

  • EXEC sp_tableoption N'Parts', 'text in row', '6000'

將BizTalk Server資料庫的自動成長設定定義為固定值,而不是百分比值

  • SQL Server資料庫自動成長是封鎖作業,這會阻礙BizTalk Server資料庫效能。 因此,請務必事先為BizTalk Server資料庫配置足夠的空間,以將資料庫自動成長次數降到最低。

  • 資料庫自動成長應該設定為固定的 MB 數目,而不是百分比, (以 MB 為單位指定檔案成長) 。 這應該這樣做,如此一來,如果自動成長髮生,則會以測量的方式執行此動作。 這可減少過多資料庫成長的可能性。 BizTalk Server資料庫的成長增量通常不應低於 100 MB。

BizTalk Server資料庫的大小預先調整為具有多個資料檔案的大小

當SQL Server增加檔案的大小時,必須先初始化新的空間,才能使用它。 這是封鎖作業,牽涉到以空白頁面填滿新空間。 SQL Server在 Windows Server 2003 或更新版本上執行的 2005 或更新版本支援立即檔案初始化。 這項功能可大幅降低檔案成長作業的效能影響。 如需詳細資訊,請參閱 資料庫立即檔案初始化,其提供啟用立即檔案初始化的步驟。

下列清單描述實驗室測試中使用的BizTalk Server資料庫組態:

  • BizTalk DTADB (BizTalk 追蹤資料庫檔案) : 檔案大小為 2048 MB 且成長為 100 MB,且記錄檔為 1024 MB 且成長為 100 MB。

  • BizTalkMgmtdb (BizTalk 管理資料庫檔案) : 檔案大小為 512 MB 且成長為 100 MB,且記錄檔為 512 MB 且成長為 100 MB。

  • SSODB: 檔案大小為 512 MB 且成長為 100 MB,且記錄檔為 512 MB 且成長為 100 MB。

  • BizTalkMsgBoxDb (BizTalk MessageBox 資料庫) : 8 個資料檔案,每個資料檔案的檔案大小為 2 GB,且成長為 100 MB,記錄檔為 20 GB 且成長為 100 MB。 因為 BizTalk MessageBox 資料庫最作用中,建議您將資料檔案和交易記錄檔放在專用磁片磁碟機上,以減少磁片 I/O 爭用問題的可能性。 在我們的實驗室環境中,我們會針對下列各項使用一個磁片磁碟機:

    • MessageBox 資料檔案

    • MessageBox 交易記錄檔

    下列 SQL 腳本可用來預先調整 BizTalkMsgBoxDb 的大小,一開始在磁片磁碟機 J (J:\BizTalkMsgBoxDb.mdf) ,以及磁片磁碟機 K (K:\BizTalkMsgBoxDb_log上的記錄檔。LDF) :

重要

此腳本是以「原樣」提供,僅供示範或教育用途使用,且僅供您自行風險使用。 Microsoft 不支援使用此腳本,Microsoft 不保證此腳本的適用性。

EXEC dbo.sp_helpdb BizTalkMsgBoxDb
ALTER DATABASE BizTalkMsgBoxDb MODIFY FILE (NAME = BizTalkMsgBoxDb , FILENAME = 'J:\BizTalkMsgBoxDb.mdf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE    (NAME = BizTalkMsgBoxDb_2 , FILENAME = 'J:\BizTalkMsgBoxDb_2.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE    (NAME = BizTalkMsgBoxDb_3 , FILENAME = 'J:\BizTalkMsgBoxDb_3.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE    (NAME = BizTalkMsgBoxDb_4 , FILENAME = 'J:\BizTalkMsgBoxDb_4.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE    (NAME = BizTalkMsgBoxDb_5 , FILENAME = 'J:\BizTalkMsgBoxDb_5.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE    (NAME = BizTalkMsgBoxDb_6 , FILENAME = 'J:\BizTalkMsgBoxDb_6.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE    (NAME = BizTalkMsgBoxDb_7 , FILENAME = 'J:\BizTalkMsgBoxDb_7.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE    (NAME = BizTalkMsgBoxDb_8 , FILENAME = 'J:\BizTalkMsgBoxDb_8.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
GO
ALTER DATABASE BizTalkMsgBoxDb MODIFY FILE (NAME = BizTalkMsgBoxDb_log , FILENAME = 'K:\BizTalkMsgBoxDb_log.LDF', SIZE =  20GB , FILEGROWTH = 100MB)
GO

將備份BizTalk Server輸出目錄移至專用 LUN

  1. 將名為 Backup BizTalk 的輸出目錄 (完整和記錄備份) 移至專用 LUN。

  2. 編輯名為Backup BizTalk Server的作業,以指向專用 LUN。

第一個步驟是寫入與作業讀取位置不同的磁片,以減少作業執行時的磁片 I/O 競爭。 如需詳細資訊,請參閱設定備份BizTalk Server作業

確認BIZTALK SERVER SQL Agent 作業正在執行

在BizTalk Server中,數個SQL Server Agent作業會執行重要的功能,讓您的伺服器運作正常且狀況良好。 請確定您監視這些作業的健康情況,以及它們執行時不會發生錯誤。 BizTalk Server效能問題的其中一個常見原因是,當BizTalk Server SQL Agent 作業未執行時,MessageBox 和 Tracking 資料庫可能會未核取。 若要確定BizTalk Server SQL Agent 作業執行時沒有問題,請遵循下列步驟:

  1. 確認SQL Server Agent服務正在執行

  2. 確認BizTalk Server所安裝的SQL Server Agent作業已啟用並成功執行。 BizTalk Server SQL Server Agent作業很重要:如果作業未執行,系統效能會隨著時間而降低。

  3. 確認BizTalk Server SQL Server Agent作業已及時完成。 設定最新版的 Microsoft System Center Operations Manager 以監視作業。 您應該注意特定作業特有的排程:

    • MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb作業預設會持續執行。 監視軟體應將此排程納入考慮,而不會產生警告。

    • MessageBox_Message_Cleanup_BizTalkMsgBoxDb作業未啟用或排程,但每隔 10 秒就會由MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb作業啟動。 因此,不應該啟用、排程或手動啟動此作業。

  4. 確認已正確設定SQL Server Agent服務的啟動類型。 確認SQL Server Agent服務已設定為[自動啟動類型],除非SQL Server Agent服務設定為 Windows Server 叢集上的叢集資源。 如果SQL Server Agent服務設定為叢集資源,則您應該將[啟動類型] 設定為[手動],因為服務將由叢集服務管理。

設定追蹤資料的清除和封存

若要確定您已正確設定清除和封存追蹤資料,請遵循下列步驟:

  1. 請確定名為 DTA 清除和封存 的 SQL Agent 作業已正確設定、啟用並順利完成。

    如需詳細資訊,請參閱 設定 DTA 清除和封存作業

  2. 請確定作業可以像產生傳入追蹤資料一樣快速清除追蹤資料。

    如需詳細資訊,請參閱 測量最大永續性追蹤輸送量

  3. 檢閱虛清除和硬式清除參數,以確保您將資料保持在最佳時間長度。

    如需詳細資訊,請參閱 封存和清除 BizTalk 追蹤資料庫

  4. 如果您只需要清除舊資料,且不需要先封存,請變更 SQL Agent 作業以呼叫名為 dtasp_PurgeTrackingDatabase的預存程式。

    如需詳細資訊,請參閱 從 BizTalk 追蹤資料庫清除資料

監視和減少 DTC 記錄檔磁片 I/O 競爭

分散式交易協調器 (DTC) 記錄檔可能會成為大量交易環境中的磁片 I/O 瓶頸。 使用支援交易的配接器,例如SQL Server、MSMQ 或 MQSeries,或在多 MessageBox 環境中,這特別適用。 交易式配接器會使用 DTC 交易,而多 MessageBox 環境會廣泛使用 DTC 交易。 若要確保 DTC 記錄檔不會成為磁片 I/O 瓶頸,您應該監視 DTC 記錄檔位於SQL Server資料庫伺服器上之磁片的磁片 I/O 使用量。 如果 DTC 記錄檔所在磁片的磁片 I/O 使用量過長,請考慮將 DTC 記錄檔移至更快速的磁片。 在叢集SQL Server的環境中,這不是大部分的考慮,因為記錄檔已位於共用磁片磁碟機上,這可能是具有多個軸的快速 SAN 磁片磁碟機。 您仍應該仍監視磁片 I/O 使用量。 這是因為它可能會成為非叢集環境中的瓶頸,或當 DTC 記錄檔與其他大量磁片檔案位於共用磁片上時。

分隔 MessageBox 和追蹤資料庫

因為 BizTalk MessageBox 和 BizTalk 追蹤資料庫是最作用中的,因此建議您將資料檔案和交易記錄檔放在專用磁片磁碟機上,以減少磁片 I/O 爭用問題的可能性。 例如,針對 MessageBox 和 BizTalk 追蹤資料庫檔案需要四個磁片磁碟機,每個磁片磁碟機各有一個磁片磁碟機:

  • MessageBox 資料檔案

  • MessageBox 交易記錄檔

  • BizTalk 追蹤 (DTA) 資料檔案

  • BizTalk 追蹤 (DTA) 交易記錄檔

    將 BizTalk MessageBox 和 BizTalk 追蹤資料庫分開,並分隔不同實體磁片上的資料庫檔案和交易記錄檔,會被視為降低磁片 I/O 競爭的最佳做法。 嘗試盡可能將磁片 I/O 分散到多個實體軸。 您也可以將 BizTalk 追蹤資料庫放在專用的SQL Server,以減少磁片 I/O 競爭;不過,您仍應該遵循上述做法來分隔資料檔案和交易記錄檔。

優化BizTalk Server資料庫的檔案群組

請遵循優化 Databases2 的檔案群組優化資料庫效能中的步驟,為BizTalk Server資料庫建立其他檔案群組和檔案。 這可大幅提升單一磁片組態中BizTalk Server資料庫的效能。

另請參閱

最佳化資料庫效能