Configuration des fournisseurs OLE DB pour l'exécution de requêtes distribuées

SQL Server fournit plusieurs options avancées pour gérer les requêtes distribuées. Certaines de ces options sont gérées au niveau du fournisseur ; d'autres sont gérées au niveau du serveur lié, via sp_serveroption. Seuls les administrateurs système expérimentés devraient configurer ces options avancées.

Options du fournisseur OLE DB :

Les options du fournisseur OLE DB permettant de gérer des requêtes distribuées peuvent être configurées dans SQL Server Management Studio. Dans l'Explorateur d'objets, cliquez avec le bouton droit sur le nom du fournisseur, puis sélectionnez Propriétés. Le tableau suivant décrit les options disponibles pour le fournisseur.

Option du fournisseur

Description

DynamicParameters

Si la valeur est autre que zéro, indique que le fournisseur autorise la syntaxe de marqueur de paramètre '?' pour les requêtes paramétrées. Définissez cette option uniquement si le fournisseur prend en charge l'interface ICommandWithParameters et accepte le point d'interrogation '?' en tant que marqueur de paramètres. Cette option permet à SQL Server d'exécuter des requêtes paramétrées sur le fournisseur, et d'optimiser ainsi les performances de certaines requêtes.

NestedQueries

Si la valeur n'est pas zéro, indique que le fournisseur autorise les instructions SELECT imbriquées dans la clause FROM. Cette option permet à SQL Server de déléguer au fournisseur certaines requêtes qui nécessitent des instructions SELECT imbriquées dans la clause FROM.

LevelZeroOnly

Si la valeur n'est pas zéro, seules les interfaces OLE DB de niveau 0 sont invoquées pour ce fournisseur.

AllowInProcess

Si la valeur est différente de zéro, SQL Server autorise l'instanciation du fournisseur en tant que serveur en cours de processus. Quand cette option n'est pas définie dans le Registre, le comportement par défaut consiste à instancier le fournisseur en dehors du processus SQL Server. L'instanciation du fournisseur en dehors du processus SQL Server protège SQL Server des erreurs contenues dans le fournisseur. Lorsque le fournisseur est instancié en dehors du processus SQL Server, les mises à jour et les ajouts ayant trait à des colonnes LOB (varchar(max), nvarchar(max), varbinary(max), text, ntext ou image) sont interdits.

Le fournisseur OLE DB de SQL Native Client SQL Server ne peut pas être instancié en dehors du processus. Une erreur se déclenche si vous définissez ce fournisseur pour qu'il s'exécute en dehors du processus et que vous tentez d'exécuter une requête distribuée.

NonTransactedUpdates

Si la valeur n'est pas zéro, SQL Server autorise les mises à jour, même si ITransactionLocal n'est pas disponible. Si cette option est activée, les mises à jour du fournisseur ne sont pas récupérables, puisque celui-ci ne prend pas en charge les transactions.

IndexAsAccessPath

Si la valeur n'est pas zéro, SQL Server tente d'utiliser des index du fournisseur pour extraire des données. Par défaut, les index sont uniquement utilisés pour les métadonnées et ne sont jamais ouverts.

DisallowAdhocAccess

Si une valeur autre que zéro est définie, SQL Server n'autorise pas l'accès via les fonctions OPENROWSET et OPENDATASOURCE du fournisseur OLE DB. Si cette option n'est pas activée, SQL Server n'autorise pas davantage l'accès ponctuel.

Cette option contrôle la possibilité donnée aux non-administrateurs d'exécuter des requêtes appropriées. Elle n'a aucune incidence sur les administrateurs.

SqlServerLike

Si une valeur autre que zéro est définie, le fournisseur prend en charge l'opérateur LIKE tel qu'il est mis en œuvre dans SQL Server. Lorsque cette option est activée, SQL Server envisage de transmettre au fournisseur les requêtes ayant des prédicats LIKE sur des colonnes distantes dans le cadre de l'évaluation de la requête distribuée.

Les options du fournisseur OLE DB interviennent au niveau du fournisseur. Lorsque les options sont définies pour un fournisseur, les paramètres s'appliquent à toutes les définitions de serveur lié qui utilisent le même fournisseur OLE DB.

Options des serveurs liés

Outre les options au niveau du fournisseur décrites précédemment, d'autres options permettant de gérer des requêtes distribuées sont disponibles au niveau du serveur lié via sp_serveroption. Les options au niveau du serveur (contrairement à celles au niveau du fournisseur) n'affectent que le comportement vis-à-vis du serveur lié spécifié.

Le tableau suivant décrit les différentes options des serveurs liés.

Options des serveurs liés

Description

utiliser le classement distant

Avec la valeur true, SQL Server utilisera les informations de classement des colonnes de caractères à partir du serveur lié. Si le serveur lié constitue une instance de SQL Server, les informations de classement sont alors automatiquement dérivées à partir de l'interface du fournisseur OLE DB de SQL Server. Si le serveur lié n'est pas une instance de SQL Server, SQL Server utilisera les paramètres de classement de l'option nom de classement.

Avec la valeur false, SQL Server interprétera les données de caractères à partir du serveur lié spécifié dans le classement par défaut de l'instance locale d’un serveur SQL Server.

nom de classement

Spécifie le classement à utiliser pour les données de caractères à partir du serveur lié si l'option utiliser le classement distant est définie avec la valeur true. Cette option est ignorée si utiliser le classement distant est défini avec la valeur false, ou si le serveur lié est une instance de SQL Server.

délai de connexion

Spécifie le délai d'attente (en secondes) à utiliser lorsque SQL Server tente d'établir une connexion vers le serveur lié. Si cette option n'est pas définie, la valeur en cours définie pour l'option de configuration globale délai d'attente de connexion distante est utilisée en tant que valeur par défaut.

validation de schéma différée

Si cette option possède la valeur false (valeur par défaut), SQL Server vérifie les éventuelles modifications de schéma apportées depuis la compilation dans les tables distantes. Cela se produit avant le démarrage de l’exécution de la requête. Si une modification a été apportée au schéma, SQL Server recompile la requête avec le nouveau schéma.

Si cette option est définie avec la valeur true, la vérification du schéma des tables distantes est retardée jusqu'à l'exécution. Cela risque d'entraîner l'échec d'une requête distribuée, si le schéma d'une table distante a été modifié entre la compilation et l'exécution de la requête.

Vous pouvez définir cette option avec la valeur true lorsque des vues partitionnées distribuées sont en cours d'utilisation avec un serveur SQL Server lié. Une table spécifiée qui participe à la vue partitionnée ne peut pas être utilisée lors d'une exécution spécifique d'une requête portant sur la vue. Par conséquent, le retard de la validation du schéma peut optimiser les performances.