Anforderungen an SQL-Dialekte für OLE DB-Anbieter

Die von einem OLE DB-Anbieter unterstützte Stufe von SQL bestimmt, wie effektiv Microsoft SQL Server verteilte Abfragevorgänge an den OLE DB-Anbieter delegiert.Wird SQL von einem Anbieter nicht unterstützt, der nur Rowsets öffnet, muss SQL Server das gesamte Rowset abrufen und alle logischen Operationen vornehmen, selbst wenn die verteilte Abfrage nur eine Teilmenge der Zeilen im Quellrowset benötigt. Wenn ein OLE DB-Anbieter viele SQL-Syntaxelemente unterstützt, generiert SQL Server komplexere Abfragen, die es dem Quellanbieter ermöglichen, unnötige Zeilen auszufiltern, ehe das Rowset an SQL Server zurückgegeben wird.

Die OLE DB-Spezifikation definiert eine DBPROP_SQLSUPPORT-Eigenschaft, über die Anbieter die unterstützte Stufe von SQL-Syntax melden können. Die unterstützten SQL-Mindeststufen, die SQL Server-Versionen in verteilten Abfragen benötigen, sind:

  • SQL Server 2005: DBPROPVAL_SQL_SUBMINIMUM

  • SQL Server 2000: DBPROPVAL_SQL_SUBMINIMUM

  • SQL Server 7.0: DBPROPVAL_SQL_ANSI92_ENTRY oder DBPROPVAL_SQL_ODBC_CORE

Zusätzlich zur Unterstützung einer niedrigeren Stufe von SQL-Syntax der zugrunde liegenden OLE DB-Anbieter definiert SQL Server 2000 später eine SQLPROPSET_OPTHINTS-Eigenschaftengruppe, die Anbieter verwenden können, um anzugeben, dass sie einzelne SQL-Syntaxelemente unterstützen, die über jene für DBPROPVAL_SQL_SUBMINIMUM hinausgehen. Wenn ein Anbieter eine oder zwei Funktionen unterstützt, die zur Optimierung verteilter Abfragen verwendet werden können, jedoch die vollständige Syntax von DBPROPVAL_SQL_ANSI92_ENTRY oder DBPROPVAL_SQL_ODBC_CORE nicht unterstützt, kann der Anbieter die SQLPROPSET_OPTHINTS-Eigenschaften verwenden, um SQL Server von den unterstützten Optimierungsfunktionen in Kenntnis zu setzen.