Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Thema erfahren Sie, wie Sie die Leistung beim Verwenden des Datenanbieters optimieren können.
Konfigurieren der Leistung
Um die Leistung zu verbessern, konfigurieren Sie die Anbieter auf folgende Weise.
Pool von OLE DB-Ressourcen, um die Startzeit der Verbindung zu reduzieren
OLE DB-Ressourcenpooling und Anbieterverbindungspooling können die Leistung erhöhen, indem die Startzeit der Verbindung reduziert wird. Ressourcenpooling wird über OLE DB-Dienstkomponenten aktiviert, die Teil des Windows-Betriebssystems sind. Sie können OLE DB-Ressourcenpooling aktivieren, indem Sie OLE DB-Initialisierungseigenschaften und Registrierungseinstellungen festlegen. Weitere Informationen finden Sie unter OLE DB Resource Pooling (https://go.microsoft.com/fwlink/?LinkID=180446).
Ressourcen für Poolanbieter, um die Startzeit der Verbindung zu reduzieren
Die Verbindungspooling ist eine clientseitige Optimierung, die die Startzeit der Verbindung reduziert und gleichzeitig die Speicherauslastung auf dem Clientcomputer reduziert. Der Datenanbieter unterstützt verbindungspooling. Sie können den Pool mithilfe der OLE DB-Datenquelleninitialisierungszeichenfolge (Connection Pooling=True) angeben. Darüber hinaus können Sie den Pool mithilfe des Dialogfelds "Erweitert " des Datenquellen-Assistenten und des Dialogfelds "Alle Datenlinks" konfigurieren.
Der Anbieter verwaltet einen Verbindungscache, basierend auf einer Max Pool Size-Einstellung. Die Standardpoolgröße beträgt 100 Verbindungen (Max Pool Size=100 ), die Sie mithilfe des Dialogfelds All des Datenquellen-Assistenten oder der Datenverknüpfungen anpassen können. Für die Eigenschaft "Max Pool Size" existiert keine Obergrenze. Wenn Sie einen Wert konfigurieren, der kleiner als 0 für die Eigenschaft "Max Pool Size" ist, wird der Standardwert 100 verwendet. Optional können Sie eine Anzahl von Sekunden angeben, um den Datenanbieter anzuweisen, auf das Herstellen von Verbindungen mit clientseitigem Pooling zu warten. Wenn alle Verbindungen in einem Pool verwendet werden und der Timeoutzeitraum abläuft, gibt der Datenanbieter einen Fehler an den Datenkonsumenten zurück ("Verbindung nicht verfügbar"). Der Standardwert ist 15 Sekunden (Connect Timeout=15 ), die Sie im Dialogfeld „Alle“ des Datenquellen-Assistenten oder der Datenverknüpfungen anpassen müssen. Für die Connect-Timeout-Eigenschaft gibt es keine maximale Grenze. Geben Sie -1 an, damit der Datenanbieter auf unbestimmte Zeit auf eine offene Verbindung im clientseitigen Verbindungspool wartet.
Optimierung des Rowset-Caches beim Abrufen von Daten
Die RowsetCacheSize-Eigenschaft weist den Datenanbieter an, Zeilen von DB2 vorab abzurufen, während Zeilen gleichzeitig verarbeitet und an den Datenverbraucher zurückgegeben werden. Dieses Feature kann die Leistung bei schreibgeschützten Massenvorgängen auf Multiprozessor- oder Multi-Core-Computern verbessern. Der Standardwert für diese Eigenschaft ist 0 (RowsetCacheSize=0 ), was angibt, dass das optionale Pre-Fetch-Feature "off" ist. Es wird empfohlen, einen Wert zwischen 10 und 100 mit einem anfänglich empfohlenen Wert von 10 festzulegen, den Sie mithilfe des Dialogfelds "Alle " des Datenquellen-Assistenten oder der Datenlinks anpassen können. Diese Eigenschaft weist den Datenanbieter an, die angegebene Anzahl von Zeilenbatches vorab abzurufen, die im Rowsetcache des Datenanbieters gespeichert sind. Die Größe der Zeilenbatches wird automatisch basierend auf dem Wert für cRows in der OLE DB IRowset::GetNextRows-Schnittstelle bestimmt, die vom Consumer angegeben wird.
Zurückstellen der Vorbereitung von Befehlen mit Parametern bis zur Ausführung
"Defer Prepare" weist den Datenanbieter an, die Verarbeitung parametrisierter INSERT-, UPDATE-, DELETE- und SELECT-Befehle zu optimieren. Sie können diese Option mithilfe der ADO.NET Verbindungszeichenfolge oder der OLE DB-Datenquelleninitialisierungszeichenfolge (Defer Prepare=True ) angeben. Darüber hinaus können Sie den Pool mithilfe des Dialogfelds "Erweitert " des Datenquellen-Assistenten und des Dialogfelds "Alle Datenlinks" konfigurieren. Für die Befehle INSERT, UPDATE und DELETE kombiniert der Data Provider die Befehle 'vorbereiten', 'ausführen' und 'commit' zu einem Netzwerkfluss, der zur Remotedatenbank gesendet wird. Für den SELECT-Befehl kombiniert der Datenanbieter die prepare- und execute-Befehle in einem Netzwerkfluss. Dadurch wird der Netzwerkdatenverkehr minimiert und die Gesamtleistung wird häufig verbessert.
Abrufen von Schemainformationen aus dem DB2-Schattenkatalog
Die Shadow Catalog-Eigenschaft weist den Datenanbieter an, Schemainformationen aus einem DB2-Schattenkatalog abzurufen. Der DB2-Administrator kann einen Schattenkatalog definieren, der die Schemainformationen für Tabellen, Spalten, Primärschlüssel und Indizes enthält. Alle Datenkonsumenten verwenden diese Schemainformationen während der Entwurfsphase. Einige Datenkonsumenten verwenden diese Informationen zur Laufzeit. Der DB2-Schemakatalog kann aufgrund von Sperren während der Schreibvorgänge (Erstellen und Ändern von Anweisungen) unzugänglich werden. Außerdem kann das standardmäßige DB2-Schema groß sein, was die Latenz bei Datenverbrauchervorgängen während der Entwurfs- und Laufzeit erhöht. Ein Schattenkatalog kann den Zugriffskonflikt reduzieren und die Leistung verbessern, wenn Schema-Abrufvorgänge ausgeführt werden.
Senden mehrerer Zeilen in einer einzelnen Arbeitseinheit
Der Datenanbieter unterstützt die OLE DB IRowsetFastLoad-Schnittstelle, um Verbrauchern wie Integration Services das Ausführen mehrerer INSERT-Anweisungen in optimierten Batches zu ermöglichen. Dies verwendet besser TCP/IP-Netzwerkpakete und erhöht die Gesamtleistung. Sie wählen RowsetFastLoad aus, wenn Sie OLE DB-Ziele in Datenflüssen in Integration Services-Paketen mithilfe des Business Intelligence Developer Studio-Paket-Designers konfigurieren. Die IRowsetFastLoad-Schnittstelle wird beim Einfügen in DB2 unterstützt. Weitere Informationen finden Sie unter Access Mode for Integration Services OLE DB Destination Custom Properties (https://go.microsoft.com/fwlink/?LinkId=241518).
Timeout des Befehls zum Beenden lang ausgeführter Abfragen
Der Datenanbieter bietet eine Timeouteigenschaft für Befehle, damit Sie lange ausgeführte Abfragen automatisch beenden können, die sich negativ auf die Leistung auswirken können. Der Standardwert für das OLE DB-Rowset-DBPROP_COMMANDTIMEOUT ist 0, d. h. kein Timeout.
Sie können den Wert für Befehlstimeout von einer Anzahl von Verbrauchern angeben. Der Datenanbieter bietet eine OLE-DB-Rowset-Eigenschaft namens DBPROP_COMMANDTIMEOUT, damit Entwickler Abfragen, die lange ausgeführt werden und die Leistung beeinträchtigen können, automatisch beenden können. Integration Services und Analysis Services machen diese Eigenschaft über die Timeoutoption für Datenquellenabfragen im Business Intelligence Development Studio verfügbar. Reporting Services macht diese Eigenschaft über die Option "Timeout für Dataseteigenschaften" im Business Intelligence Development Studio verfügbar. Replikations- und Abfrageprozessor machen diese Eigenschaft über die sp_serveroption, @optname=query Timeout verfügbar.
Messen der Leistung
Um die Leistung zu messen, bietet der Datenanbieter Leistungsindikatoren. Standardmäßig sind Leistungsindikatoren deaktiviert. Sie können aktiviert werden, indem Sie den Wert des folgenden Registrierungsschlüssels in 1 ändern:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Host Integration Server\Data Integration\UpdateCounters = 1
Die Leistungsindikatoren des Datenanbieters erfassen Informationen zu offenen Verbindungen, offenen Anweisungen, Paketen und empfangenen Bytes, durchschnittliche Verarbeitungszeit (DB2-Server), Befehlsausführungen, Datenabrufe und Transaktions-Commits/Rollbacks. Weitere Informationen finden Sie unter Leistungsindikatoren (https://go.microsoft.com/fwlink/?LinkID=119211).