Programmazione del set di proprietà SQLPROPSET_OPTHINTS
Oltre alle funzionalità definite in DBPROPVAL_SQL_SUBMINIMUM, i singoli provider OLE DB possono supportare funzionalità SQL aggiuntive, ma non tutte le funzionalità di DBPROPVAL_SQL_ODBC_CORE o DBPROPVAL_SQL_ANSI92_ENTRY. L'utilizzo di alcune delle funzionalità supportate da questi driver consente a Query Optimizer di SQL Server 2005 di migliorare le prestazioni delle query distribuite. Tramite il set di proprietà SQLPROPSET_OPTHINTS, questi provider possono indicare a SQL Server le funzionalità supportate che consentono di eseguire più rapidamente le query distribuite.
Il set di proprietà SQLPROPSET_OPTHINTS è definito nella documentazione di SQL Server. Gli sviluppatori dei singoli provider OLE DB tuttavia devono definire all'interno dei provider il codice per il supporto di tale set di proprietà. Il supporto del set di proprietà definito a livello di programmazione nel provider può essere utilizzato da SQL Server per ottimizzare le prestazioni delle query distribuite.
Per i provider OLE DB che supportano DBPROPVAL_SQL_ANSI92_ENTRY o DBPROPVAL_SQL_ODBC_CORE, le proprietà SQLPROPSET_OPTHINTS non sono necessarie, ad eccezione di SQLPROP_DATELITERALS. Per poter supportare DBPROPVAL_SQL_ANSI92_ENTRY o DBPROPVAL_SQL_ODBC_CORE, tali provider devono supportare tutte le funzionalità associate al set di proprietà SQLPROPSET_OPTHINTS, a eccezione di SQLPROP_DATELITERALS.
Nella tabella seguente sono elencate le proprietà segnalate tramite SQLPROPSET_OPTHINTS.
Proprietà | Descrizione |
---|---|
SQLPROP_ANSILIKE |
Specifica che la clausola LIKE è supportata come definito nello standard SQL-92 Entry Level, con i caratteri jolly % e _. |
SQLPROP_DATELITERALS |
Specifica che il provider supporta i valori letterali di tipo datetime o le costanti in base alla sintassi Transact-SQL. |
SQLPROP_DYNAMICSQL |
Specifica che il provider supporta la sintassi degli indicatori dei parametri ODBC che utilizzano i punti interrogativi (? ). |
SQLPROP_INNERJOIN |
Specifica che il provider supporta riferimenti a più tabelle nella clausola WHERE, a condizione che non si tratti di riferimenti relativi a outer join. |
SQLPROP_GROUPBY |
Specifica che il provider supporta le clausole GROUP BY e HAVING in un'istruzione SELECT. Specifica inoltre che il provider supporta le funzioni di aggregazione AVG, COUNT, MIN, MAX e SUM, a condizione che DISTINCT non sia specificato come argomento di tali funzioni. |
SQLPROP_NESTEDQUERIES |
Specifica che il provider supporta istruzioni SELECT nidificate nella clausola FROM. |
SQLPROP_SQLLIKE |
Indica che il provider supporta la sintassi LIKE di SQL Server. Se SQLPROP_SQLLIKE è attiva, Query Optimizer può inviare una query contenente un predicato SQL Server LIKE al server remoto, se questa operazione è prevista dal piano della query. Se SQLPROP_SQLLIKE è disattiva, un predicato LIKE di SQL Server viene sempre valutato a livello locale. |
SQLPROP_SUBQUERIES |
Specifica che il provider supporta le subquery come definito nello standard SQL-92 Entry Level. |
Di seguito vengono elencate le costanti utilizzate per definire il set di proprietà SQLPROPSET_OPTHINTS nel codice dei provider OLE DB:
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
}
Vedere anche
Concetti
Query distribuite
Guida di riferimento ai provider OLE DB per query distribuite
Requisiti relativi al sottolinguaggio SQL per i provider OLE DB