Freigeben über


Optimierungen der Datenbank nach der Konfiguration

Zusätzlich zum Befolgen der Empfehlungen in Datenbankoptimierungen vor der Konfiguration2 sollten mehrere Schritte ausgeführt werden, um BizTalk Server Datenbankleistung auf SQL Server zu optimieren, nachdem BizTalk Server installiert und die BizTalk Server Datenbanken konfiguriert wurden. Dieses Thema enthält eine Liste dieser Optimierungen.

Erwägen Sie, die Tabellenoption "Text in Zeile" für bestimmte MessageBox-Datenbanktabellen festzulegen.

SQL Server bietet eine Tabellenoption namens Text in Zeile, um zu deklarieren, dass der Inhalt der Felder vom Typ text, ntext oder Bilddaten, deren Dimensionen kleiner als die einer Datenseite (8 KB) sind, in einer Datenzeile gespeichert werden muss. Durch Festlegen dieser Option für BizTalkMsgBoxDb-Tabellen (Parts-Tabelle, Spooltabelle und DynamicStateInfo-Tabellen) können Sie den Nachrichtendurchsatz erhöhen, wenn Sie mit kleinen Nachrichten arbeiten, die einen kleinen Kontext und Orchestrierungen mit einer geringen Persistenzgröße aufweisen.

  • Teiletabelle: Wenn die Nachrichtengröße kleiner als die Dimensionen einer Datenseite von 8 KB ist, kann das Anwenden der Option Text in Zeilentabelle auf die Tabelle Teile zu BizTalk Server Leistungsverbesserung führen. Die Tabelle Parts enthält die folgenden Felder:

    • ImgPart: Enthält ein Nachrichtenteil- oder Nachrichtenteilfragment.

    • ImgPropBag: Enthält den Eigenschaftenbehälter des Nachrichtenteils.

      Auf diese Weise kann der Nachrichten-Agent, der in einem BizTalk-Host ausgeführt wird, bei der Schleife mit dem MessageBox-Objekt einen Batch von Nachrichten aus der Tabelle Parts abrufen, indem er eine kleine Anzahl von Seiten liest. Abhängig vom spezifischen Szenario und der Hardwarekonfiguration kann dieses Verfahren die CPU-Auslastung sowohl auf dem SQL Server als auch auf BizTalk Server reduzieren und eine erhebliche Verbesserung der Latenz und des Durchsatzes bieten.

  • Spool-Tabelle: Wenn die durchschnittliche Größe des Nachrichtenkontexts kleiner als 8 KB ist, können Sie die Anzahl der Zugriffe beim Lesen von Nachrichten aus dem MessageBox-Element zusammen mit ihrem Kontext reduzieren, wenn Sie die Option Text in zeilenbasierten Tabellen in der Spool-Tabelle aktivieren. Um diese Option auf die Spool-Tabelle anzuwenden, müssen Sie unnötige Kontexteigenschaften und differenzierte Felder entfernen, um die Größe des Nachrichtenkontexts unter 8 KB zu reduzieren.

  • DynamicStateInfo-Tabellen Diese Tabellen, eine für jeden Host, enthalten ein Feld des Typimages namens imgData, das binär-serialisierte Orchestrierungszustände enthält, wenn sie während der Ausführung auf einen Persistenzpunkt stoßen. Wenn der interne Zustand von Orchestrierungen innerhalb eines HosthostA so klein ist, dass die einmal serialisierte Größe kleiner als 8 KB ist, kann die Text-in-Zeilen-Technik erfolgreich auf die DynamicStateInfo_HostA Tabelle angewendet werden. Daher wird empfohlen, den internen Zustand der Orchestrierungen so klein wie möglich zu halten. Dieses Verfahren kann die Zeit erheblich reduzieren, die die XLANG-Engine zum Serialisieren, Beibehalten, Deerialisieren und Wiederherstellen des internen Zustands einer Orchestrierung im Falle eines Persistenzpunkts aufwendet.

    In unseren Labtests haben wir die folgenden Einstellungen verwendet:

  • EXEC sp_tableoption N'Spool', 'Text in Zeile', '6000'

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

Definieren von Einstellungen für automatisches Wachstum für BizTalk Server Datenbanken auf einen festen Wert anstelle eines Prozentwerts

  • SQL Server automatisches Wachstum der Datenbank ist ein blockierende Vorgang, der BizTalk Server Datenbankleistung beeinträchtigt. Daher ist es wichtig, im Voraus genügend Speicherplatz für die BizTalk Server Datenbanken zuzuweisen, um das Auftreten des automatischen Datenbankwachstums zu minimieren.

  • Das automatische Wachstum der Datenbank sollte auf eine feste Anzahl von Megabytes statt auf einen Prozentsatz festgelegt werden (Dateiwachstum in Megabyte angeben). Dies sollte so erfolgen, dass, wenn das automatische Wachstum auftritt, dies in einer gemessenen Weise geschieht. Dadurch wird die Wahrscheinlichkeit eines übermäßigen Datenbankwachstums verringert. Das Wachstum für BizTalk Server Datenbanken sollte in der Regel nicht kleiner als 100 MB sein.

Vorabgröße BizTalk Server Datenbanken auf die entsprechende Größe mit mehreren Datendateien

Wenn SQL Server die Größe einer Datei erhöht, muss zuerst der neue Speicherplatz initialisiert werden, bevor er verwendet werden kann. Dies ist ein Blockierungsvorgang, bei dem der neue Platz mit leeren Seiten gefüllt wird. SQL Server 2005 oder höher unter Windows Server 2003 oder höher unterstützt die sofortige Dateiinitialisierung. Diese Funktion kann die Leistungseinbußen eines Dateiwachstumsvorgangs erheblich reduzieren. Weitere Informationen finden Sie unter Sofortige Dateiinitialisierung der Datenbank, die Schritte zum Aktivieren der sofortigen Dateiinitialisierung enthält.

In der folgenden Liste werden die BizTalk Server Datenbankkonfigurationen beschrieben, die in unseren Labtests verwendet werden:

  • BizTalk DTADB (BizTalk Tracking-Datenbankdateien): Datendatei mit einer Dateigröße von 2048 MB mit 100 MB Wachstum und einer Protokolldatei von 1024 MB mit 100 MB Wachstum.

  • BizTalkMgmtdb (BizTalk Management-Datenbankdateien): Datendatei mit einer Dateigröße von 512 MB mit 100 MB Wachstum und einer Protokolldatei von 512 MB mit 100 MB Wachstum.

  • SSODB: Datendatei mit einer Dateigröße von 512 MB mit 100 MB Wachstum und einer Protokolldatei von 512 MB mit 100 MB Wachstum.

  • BizTalkMsgBoxDb (BizTalk MessageBox-Datenbanken): 8 Datendateien mit jeweils einer Dateigröße von 2 GB mit 100 MB Wachstum und einer Protokolldatei von 20 GB mit 100 MB Wachstum. Da die BizTalk MessageBox-Datenbanken am aktivsten sind, empfiehlt es sich, die Datendateien und Transaktionsprotokolldateien auf dedizierten Laufwerken zu platzieren, um die Wahrscheinlichkeit von Problemen mit Datenträger-E/A-Konflikten zu verringern. In unserer Labumgebung haben wir jeweils ein Laufwerk für folgendes verwendet:

    • MessageBox-Datendateien

    • MessageBox-Transaktionsprotokolldateien

    Das folgende SQL-Skript kann verwendet werden, um bizTalkMsgBoxDb vorab zu dimensionieren, das zunächst eine Datendatei auf Laufwerk J (J:\BizTalkMsgBoxDb.mdf) und eine Protokolldatei auf Laufwerk K (K:\BizTalkMsgBoxDb_log) enthält. LDF):

Wichtig

Dieses Skript wird "as is" bereitgestellt, ist nur für Demo- oder Bildungszwecke vorgesehen und soll auf eigene Gefahr verwendet werden. Die Verwendung dieses Skripts wird von Microsoft nicht unterstützt, und Microsoft übernimmt keine Garantien für die Eignung dieses Skripts.

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

Verschieben des Ausgabeverzeichnisses "Backup BizTalk Server" in eine dedizierte LUN

  1. Verschieben Sie das Ausgabeverzeichnis Backup BizTalk (Vollständige sicherung und Protokollsicherung) in eine dedizierte LUN.

  2. Bearbeiten Sie den Auftrag mit dem Namen Backup BizTalk Server, um auf die dedizierte LUN zu verweisen.

Der erste Schritt reduziert die E/A-Konflikte auf Datenträgern, wenn der Auftrag ausgeführt wird, indem auf einen Datenträger geschrieben wird, der sich vom Leseort des Auftrags unterscheidet. Weitere Informationen finden Sie unter Konfigurieren des Sicherungsauftrags BizTalk Server.

Vergewissern Sie sich, dass die BizTalk Server SQL-Agent-Aufträge ausgeführt werden.

In BizTalk Server führen mehrere SQL Server-Agent Aufträge wichtige Funktionen aus, die ihre Server betriebsbereit und fehlerfrei halten. Stellen Sie sicher, dass Sie die Integrität dieser Aufträge überwachen und fehlerfrei ausgeführt werden. Eine häufige Ursache für BizTalk Server Leistungsprobleme besteht darin, dass die MessageBox- und Tracking-Datenbanken deaktiviert werden können, wenn die BizTalk Server SQL-Agent-Aufträge nicht ausgeführt werden. Führen Sie die folgenden Schritte aus, um sicherzustellen, dass die BizTalk Server SQL-Agent-Aufträge problemlos ausgeführt werden:

  1. Vergewissern Sie sich, dass der SQL Server-Agent-Dienst ausgeführt wird.

  2. Vergewissern Sie sich, dass die von BizTalk Server installierten SQL Server-Agent Aufträge aktiviert und erfolgreich ausgeführt werden. Die BizTalk Server SQL Server-Agent Aufträge sind von entscheidender Bedeutung: Wenn sie nicht ausgeführt werden, verschlechtert sich die Systemleistung im Laufe der Zeit.

  3. Vergewissern Sie sich, dass die BizTalk Server SQL Server-Agent Aufträge rechtzeitig abgeschlossen werden. Richten Sie die neueste Version von Microsoft System Center Operations Manager ein, um die Aufträge zu überwachen. Sie sollten sich über Zeitpläne im Klaren sein, die für bestimmte Aufträge gelten:

    • Der MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb-Auftrag wird standardmäßig kontinuierlich ausgeführt. Überwachungssoftware sollte diesen Zeitplan berücksichtigen und keine Warnungen erzeugen.

    • Der MessageBox_Message_Cleanup_BizTalkMsgBoxDb Auftrag ist nicht aktiviert oder geplant, sondern wird alle 10 Sekunden vom MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb Auftrag gestartet. Daher sollte dieser Auftrag nicht aktiviert, geplant oder manuell gestartet werden.

  4. Vergewissern Sie sich, dass der Starttyp des SQL Server-Agent-Diensts ordnungsgemäß konfiguriert ist. Vergewissern Sie sich, dass der SQL Server-Agent Dienst mit dem StarttypAutomatisch konfiguriert ist, es sei denn, der SQL Server-Agent Dienst ist als Clusterressource in einem Windows Server-Cluster konfiguriert. Wenn der SQL Server-Agent-Dienst als Clusterressource konfiguriert ist, sollten Sie den Starttypals Manuell konfigurieren, da der Dienst vom Clusterdienst verwaltet wird.

Konfigurieren des Bereinigens und Archivierens von Nachverfolgungsdaten

Führen Sie die folgenden Schritte aus, um sicherzustellen, dass Sie das Bereinigen und Archivieren von Nachverfolgungsdaten ordnungsgemäß eingerichtet haben:

  1. Stellen Sie sicher, dass der SQL-Agent-Auftrag mit dem Namen DTA Bereinigen und Archiv ordnungsgemäß konfiguriert, aktiviert und erfolgreich abgeschlossen ist.

    Weitere Informationen finden Sie unter Konfigurieren des DTA-Lösch- und Archivauftrags.

  2. Stellen Sie sicher, dass der Auftrag die Nachverfolgungsdaten so schnell bereinigen kann, wie die eingehenden Nachverfolgungsdaten generiert werden.

    Weitere Informationen finden Sie unter Messen des maximalen nachhaltigen Nachverfolgungsdurchsatzes.

  3. Überprüfen Sie die Parameter für die vorläufige Bereinigung und harte Bereinigung, um sicherzustellen, dass Sie Die Daten für die optimale Dauer aufbewahren.

    Weitere Informationen finden Sie unter Archivieren und Bereinigen der BizTalk-Nachverfolgungsdatenbank.

  4. Wenn Sie nur die alten Daten bereinigen und nicht zuerst archivieren müssen, ändern Sie den SQL-Agent-Auftrag, um die gespeicherte Prozedur mit dem Namen dtasp_PurgeTrackingDatabase aufzurufen.

    Weitere Informationen finden Sie unter Löschen von Daten aus der BizTalk-Nachverfolgungsdatenbank.

Überwachen und Reduzieren von E/A-Konflikten mit DTC-Protokolldateien

Die DTC-Protokolldatei (Distributed Transaction Coordinator) kann in transaktionsintensiven Umgebungen zu einem E/A-Engpass auf dem Datenträger werden. Dies gilt insbesondere, wenn Adapter verwendet werden, die Transaktionen unterstützen, z. B. SQL Server, MSMQ oder MQSeries, oder in einer Umgebung mit mehreren MessageBox-Instanzen. Transaktionsadapter verwenden DTC-Transaktionen, und Mehrere MessageBox-Umgebungen nutzen DTC-Transaktionen umfassend. Um sicherzustellen, dass die DTC-Protokolldatei nicht zu einem E/A-Engpass des Datenträgers wird, sollten Sie die E/A-Verwendung des Datenträgers für den Datenträger überwachen, auf dem sich die DTC-Protokolldatei auf dem SQL Server Datenbankserver befindet. Wenn die Datenträger-E/A-Auslastung für den Datenträger, auf dem sich die DTC-Protokolldatei befindet, übermäßig ist, sollten Sie die DTC-Protokolldatei auf einen schnelleren Datenträger verschieben. In einer Umgebung, in der SQL Server gruppiert ist, ist dies nicht so wichtig, da sich die Protokolldatei bereits auf einem freigegebenen Laufwerk befindet, bei dem es sich wahrscheinlich um ein schnelles SAN-Laufwerk mit mehreren Spindeln handelt. Dennoch sollten Sie die E/A-Nutzung des Datenträgers überwachen. Dies liegt daran, dass dies in nicht gruppierten Umgebungen oder wenn sich die DTC-Protokolldatei auf einem freigegebenen Datenträger mit anderen datenträgerintensiven Dateien befindet.

Trennen von MessageBox- und Nachverfolgungsdatenbanken

Da die BizTalk MessageBox- und BizTalk-Nachverfolgungsdatenbanken am aktivsten sind, empfehlen wir Ihnen, die Datendateien und Transaktionsprotokolldateien für jede dieser Datenbanken auf dedizierten Laufwerken zu platzieren, um die Wahrscheinlichkeit von Problemen mit Datenträger-E/A-Konflikten zu verringern. Beispielsweise benötigen Sie vier Laufwerke für die Datenbankdateien MessageBox und BizTalk Tracking, ein Laufwerk für jedes der folgenden Dateien:

  • MessageBox-Datendateien

  • MessageBox-Transaktionsprotokolldateien

  • DTA-Datendateien (BizTalk Tracking)

  • BizTalk Tracking (DTA)-Transaktionsprotokolldateien

    Das Trennen der BizTalk MessageBox- und BizTalk-Nachverfolgungsdatenbanken und das Trennen der Datenbankdateien und Transaktionsprotokolldateien auf verschiedenen physischen Datenträgern gelten als bewährte Methoden zum Reduzieren von Datenträger-E/A-Konflikten. Versuchen Sie, die Datenträger-E/A auf so viele physische Spindeln wie möglich zu verteilen. Sie können auch Datenträger-E/A-Konflikte reduzieren, indem Sie die BizTalk-Nachverfolgungsdatenbank auf einem dedizierten SQL Server platzieren. Sie sollten jedoch weiterhin die oben genannten Methoden zum Trennen von Datendateien und Transaktionsprotokolldateien befolgen.

Optimieren von Dateigruppen für die BizTalk Server Datenbanken

Führen Sie die Schritte unter Optimieren von Dateigruppen für datenbanken2 und Optimieren der Datenbankleistung aus, um zusätzliche Dateigruppen und Dateien für die BizTalk Server Datenbanken zu erstellen. Dadurch wird die Leistung der BizTalk Server Datenbanken aus einer konfiguration mit einem einzelnen Datenträger erheblich erhöht.

Weitere Informationen

Optimieren der Datenbankleistung