Programmieren der SQLPROPSET_OPTHINTS-Eigenschaftengruppe
Einzelne OLE DB-Anbieter können bestimmte SQL-Funktionen unterstützen, die über jene in DBPROPVAL_SQL_SUBMINIMUM hinausgehen, jedoch nicht alle Funktionen von DBPROPVAL_SQL_ODBC_CORE oder DBPROPVAL_SQL_ANSI92_ENTRY bereitstellen. Der SQL Server-Abfrageoptimierer kann einige der von diesen Treibern unterstützten Funktionen zur Steigerung der Leistung verteilter Abfragen nutzen. Diese Anbieter können die SQLPROPSET_OPTHINTS-Eigenschaftengruppe verwenden, um SQL Server über die von ihnen unterstützten Funktionen, die verteilte Abfragen beschleunigen können, zu informieren.
Obwohl die SQLPROPSET_OPTHINTS-Eigenschaftengruppe in der SQL Server-Dokumentation definiert ist, müssen Entwickler von OLE DB-Anbietern Code zur Unterstützung der Eigenschaftengruppe in den Anbietern schreiben. Nach dem Codieren der Unterstützung dieser Eigenschaftengruppe im Anbieter setzt SQL Server die zugehörigen Eigenschaften zur Optimierung der Leistung verteilter Abfragen ein.
OLE DB-Anbieter, die DBPROPVAL_SQL_ANSI92_ENTRY oder DBPROPVAL_SQL_ODBC_CORE unterstützen, benötigen keine der SQLPROPSET_OPTHINTS-Eigenschaften, ausgenommen SQLPROP_DATELITERALS. Diese Anbieter müssen alle von der SQLPROPSET_OPTHINTS-Eigenschaftengruppe erfassten Funktionen unterstützen (abgesehen von SQLPROP_DATELITERALS), damit die Unterstützung von DBPROPVAL_SQL_ANSI92_ENTRY oder DBPROPVAL_SQL_ODBC_CORE gewährleistet ist.
Die folgende Tabelle nennt die Eigenschaften, die über SQLPROPSET_OPTHINTS gemeldet werden.
Eigenschaft |
Beschreibung |
---|---|
SQLPROP_ANSILIKE |
Gibt an, dass die LIKE-Klausel so, wie dies in der ISO-Eingangsstufe (Entry Level) definiert ist, mit den Platzhalterzeichen % und _ unterstützt wird. |
SQLPROP_DATELITERALS |
Legt fest, dass der Anbieter datetime-Literale oder Konstanten gemäß der Transact-SQL-Syntax unterstützt. |
SQLPROP_DYNAMICSQL |
Gibt an, dass der Anbieter die Syntax der ODBC-Parametermarkierung mithilfe von Fragezeichen (?) unterstützt. ). |
SQLPROP_INNERJOIN |
Gibt an, dass der Anbieter Verweise auf mehrere Tabellen in der WHERE-Klausel unterstützt, sofern es sich nicht um Verweise auf äußere Verknüpfungen handelt. |
SQLPROP_GROUPBY |
Gibt an, dass der Anbieter die Klauseln GROUP BY und HAVING in einer SELECT-Anweisung unterstützt. Die Eigenschaft gibt auch an, dass der Anbieter die Aggregatfunktionen AVG, COUNT, MIN, MAX und SUM unterstützt, solange DISTINCT nicht als ein Aggregatargument angegeben ist. |
SQLPROP_NESTEDQUERIES |
Gibt an, dass der Anbieter geschachtelte SELECT-Anweisungen in der FROM-Klausel unterstützt. |
SQLPROP_SQLLIKE |
Gibt an, dass der Anbieter die LIKE-Syntax von SQL Server unterstützt. Wenn SQLPROP_SQLLIKE aktiviert ist, kann der Optimierer eine Abfrage an den Remoteserver senden, die ein SQL Server LIKE-Prädikat enthält, wenn diese Vorgehensweise durch den Abfrageplan gerechtfertigt wird. Wenn SQLPROP_SQLLIKE deaktiviert ist, wird ein LIKE-Prädikat von SQL Server immer lokal ausgewertet. |
SQLPROP_SUBQUERIES |
Gibt an, dass der Anbieter Unterabfragen gemäß Definition in der ISO-Eingangsstufe (Entry Level) unterstützt. |
Die folgenden Konstanten werden zur Definition der SQLPROPSET_OPTHINTS-Eigenschaftengruppe im Code der OLE DB-Anbieter verwendet:
Extern const GUID SQLPROPSET_OPTHINTS =
{ 0x2344480c, 0x33a7, 0x11d1,
{ 0x9b, 0x1a, 0x0, 0x60, 0x8, 0x26, 0x8b, 0x9e }
};
enum SQLPROPERTIES
{
SQLPROP_NESTEDQUERIES = 0x4,
SQLPROP_DYNAMICSQL = 0x5,
SQLPROP_GROUPBY = 0x6,
SQLPROP_DATELITERALS = 0x7,
SQLPROP_ANSILIKE = 0x8,
SQLPROP_INNERJOIN = 0x9,
SQLPROP_SUBQUERIES = 0x10,
SQLPROP_SQLLIKE = 0x15
}