Konfigurieren von OLE DB-Anbietern für verteilte Abfragen

SQL Server bietet verschiedene erweiterte Optionen zur Verwaltung verteilter Abfragen. Einige Optionen werden auf Anbieterebene verwaltet, andere werden über sp_serveroption auf der Ebene des Verbindungsservers verwaltet. Die Konfiguration dieser erweiterten Optionen sollte ausschließlich durch Systemadministratoren erfolgen.

Optionen für OLE DB-Anbieter

Die Optionen zum Verwalten verteilter Abfragen für OLE DB-Anbieter können unter SQL Server Management Studio festgelegt werden. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Anbieternamen, und wählen Sie Eigenschaften aus. In der folgenden Tabelle sind die verfügbaren Anbieteroptionen beschrieben.

Anbieteroption

Beschreibung

DynamicParameters

Ein Wert ungleich null zeigt an, dass der Anbieter die Parametermarkersyntax '?' für parametrisierte Abfragen zulässt. Legen Sie diese Option nur dann fest, wenn der Anbieter die ICommandWithParameters-Schnittstelle und ein Fragezeichen ('?') als Parametermarkierung unterstützt. Durch diese Option kann SQL Server parametrisierte Abfragen für den Anbieter ausführen. Das Ausführen parametrisierter Abfragen für den Anbieter kann bei bestimmten Abfragen für eine bessere Leistung sorgen.

NestedQueries

Ein Wert ungleich null zeigt an, dass der Anbieter geschachtelte SELECT-Anweisungen in der FROM-Klausel zulässt. Das Festlegen dieser Option ermöglicht es SQL Server, bestimmte Abfragen, die das Schachteln von SELECT-Anweisungen in der FROM-Klausel erfordern, an den Anbieter zu delegieren.

LevelZeroOnly

Bei einem Wert ungleich null werden nur OLE DB-Schnittstellen der Ebene 0 mit diesem Anbieter aufgerufen.

AllowInProcess

Bei einem Wert ungleich null ermöglicht SQL Server, dass der Anbieter als In-Process-Server instanziiert wird. Wenn diese Option in der Registrierung nicht festgelegt ist, wird der Anbieter standardmäßig außerhalb des SQL Server-Prozesses instanziiert. Durch Instanziieren des Anbieters außerhalb des SQL Server-Prozesses wird der SQL Server-Prozess besser vor Fehlern beim Anbieter geschützt. Wenn der Anbieter außerhalb des SQL Server-Prozesses instanziiert ist, sind keine Updates oder Einfügungen zulässig, die auf LOB-Spalten verweisen (varchar(max), nvarchar(max), varbinary(max), text, ntext oder image).

Der OLE DB-Anbieter von SQL Server Native Client kann nicht außerhalb des Prozesses instanziiert werden. Wenn Sie festlegen, dass der OLE DB-Anbieter von SQL Server Native Client außerhalb des Prozesses ausgeführt wird, und Sie versuchen, eine verteilte Abfrage auszuführen, wird ein Fehler ausgegeben.

NonTransactedUpdates

Bei einem Wert ungleich null lässt SQL Server Aktualisierungen zu, selbst wenn ITransactionLocal nicht zur Verfügung steht. Wenn diese Option aktiviert ist, sind Aktualisierungen für den Anbieter nicht wiederherstellbar, da der Anbieter keine Transaktionen unterstützt.

IndexAsAccessPath

Bei einem Wert ungleich null versucht SQL Server, Indizes des Anbieters zum Abrufen von Daten zu verwenden. Standardmäßig werden Indizes nur für Metadaten verwendet und nicht geöffnet.

DisallowAdhocAccess

Bei einem Wert ungleich null lässt SQL Server keinen Ad-hoc-Zugriff über die OPENROWSET- und OPENDATASOURCE-Funktionen auf den OLE DB-Anbieter zu. Wenn diese Option nicht festgelegt ist, lässt SQL Server ebenfalls keinen Ad-hoc-Zugriff zu.

Diese Option steuert die Möglichkeit, dass Nicht-Administratoren Ad-hoc-Abfragen ausführen. Administratoren sind von dieser Option nicht betroffen.

SqlServerLike

Bei einem Wert ungleich null unterstützt der Anbieter den LIKE-Operator so, wie dieser in SQL Server implementiert ist. Wenn diese Option festgelegt ist, betrachtet SQL Server den Push von Abfragen mit LIKE-Prädikaten für Remotespalten an den Anbieter als Bestandteil der Auswertung der verteilten Abfrage.

Die OLE DB-Anbieteroptionen arbeiten auf Anbieterebene. Wenn die Optionen für einen Anbieter festgelegt sind, werden die Einstellungen auf alle Verbindungsserverdefinitionen angewendet, die denselben OLE DB-Anbieter verwenden.

Optionen der Verbindungsserver

Neben den bereits beschriebenen Optionen auf Anbieterebene sind über sp_serveroption verschiedene Optionen zum Verwalten verteilter Abfragen auf Verbindungsserverebene verfügbar. Im Gegensatz zu den Optionen auf Anbieterebene betreffen die Optionen auf Serverebene nur das Verhalten für den angegebenen Verbindungsserver.

In der folgenden Tabelle werden die verschiedenen Optionen der Verbindungsserver beschrieben.

Optionen der Verbindungsserver

Beschreibung

use remote collation

Durch Festlegen auf true verwendet SQL Server die Sortierungsinformationen von Zeichenspalten des Verbindungsservers. Wenn der Verbindungsserver eine Instanz von SQL Server ist, wird die Sortierungsinformation automatisch von der SQL Server OLE DB-Anbieterschnittstelle abgeleitet. Wenn der Verbindungsserver keine Instanz von SQL Server ist, verwendet SQL Server die mit der Option collation name festgelegte Sortierung.

Durch Festlegen auf false interpretiert SQL Server Zeichendaten vom angegebenen Verbindungsserver mit der Standardsortierung der lokalen Instanz von SQL Server.

collation name

Diese Option gibt die Sortierung an, die für Zeichendaten vom Verbindungsserver verwendet werden soll, wenn use remote collation auf true festgelegt ist. Diese Option wird ignoriert, wenn use remote collation auf false festgelegt ist oder wenn der Verbindungsserver eine Instanz von SQL Server ist.

connection timeout

Diese Option gibt den Timeoutwert (in Sekunden) bei der Herstellung einer Verbindung zum Verbindungsserver durch SQL Server an. Wenn diese Option nicht festgelegt ist, wird standardmäßig der aktuelle Wert der globalen Konfigurationsoption remote login timeout verwendet.

lazy schema validation

Wenn diese Option auf false festgelegt ist (der Standardwert), überprüft SQL Server, ob in den Remotetabellen seit der letzten Kompilierung Schemaänderungen vorgenommen wurden. Diese Überprüfung erfolgt vor dem Ausführen der Abfrage. Wenn eine Änderung des Schemas vorliegt, kompiliert SQL Server die Abfrage erneut mit dem neuen Schema.

Durch Festlegen dieser Option auf true wird das Überprüfen des Schemas von Remotetabellen bis zur Ausführung verzögert. Dies kann dazu führen, dass bei einer verteilten Abfrage ein Fehler auftritt, wenn das Schema einer Remotetabelle zwischen der Kompilierung und der Ausführung der Abfrage geändert wurde.

Sie sollten diese Option auf true festlegen, wenn verteilte partitionierte Sichten für einen Verbindungsserver mit SQL Server verwendet werden. Eine angegebene Tabelle, die an der partitionierten Sicht beteiligt ist, wird bei der spezifischen Ausführung einer Abfrage für die Sicht ggf. nicht wirklich verwendet. Daher kann das Zurückstellen der Schemaüberprüfung zu einer Leistungssteigerung führen.