Configurar proveedores OLE DB para consultas distribuidas

SQL Server dispone de varias opciones avanzadas para administrar consultas distribuidas. Algunas de las opciones se administran en los proveedores y otras en los servidores vinculados, mediante sp_serveroption. Sólo deben configurar estas opciones administradores de sistemas con experiencia.

Opciones del proveedor OLE DB

Las opciones del proveedor OLE DB para administrar consultas distribuidas se pueden configurar en SQL Server Management Studio. En el Explorador de objetos, haga clic con el botón secundario en el nombre del proveedor y seleccione Propiedades. En la tabla siguiente se enumeran las opciones de proveedor disponibles.

Opción de proveedor

Descripción

DynamicParameters

Si el valor es distinto de cero, indica que el proveedor permite la sintaxis de marcador de parámetro '?' para consultas con parámetros. Establezca esta opción sólo si el proveedor es compatible con la interfaz ICommandWithParameters y admite '?' como marcador de parámetro. Si establece esta opción, permitirá a SQL Server ejecutar consultas con parámetros en el proveedor. La ejecución de consultas con parámetros en el proveedor puede mejorar el rendimiento de determinadas consultas.

NestedQueries

Si el valor es distinto de cero, indica que el proveedor permite instrucciones SELECT anidadas en la cláusula FROM. Si establece esta opción, permitirá a SQL Server delegar en el proveedor determinadas consultas que necesitan anidar instrucciones SELECT en la cláusula FROM.

LevelZeroOnly

Si el valor es distinto de cero, sólo se invocan interfaces OLE DB de nivel 0 en el proveedor.

AllowInProcess

Si el valor es distinto de cero, SQL Server permite crear una instancia del proveedor como un servidor en proceso. Si no se establece esta opción en el Registro, el comportamiento predeterminado es crear una instancia del proveedor fuera del proceso de SQL Server. La creación de instancias del proveedor fuera del proceso de SQL Server protege el proceso de SQL Server frente a errores en el proveedor. Si se crea una instancia del proveedor fuera del proceso de SQL Server, no se permitirán actualizaciones ni inserciones que hagan referencia a columnas LOB (varchar(max), nvarchar(max), varbinary(max), text, ntext o image).

No se puede crear una instancia del proveedor OLE DB de SQL Server Native Client fuera de proceso. Si establece el proveedor OLE DB de SQL Server Native Client de modo que se ejecute fuera de proceso e intenta ejecutar una consulta distribuida, se generará un error.

NonTransactedUpdates

Si el valor es distinto de cero, SQL Server permite realizar actualizaciones, aunque ITransactionLocal no esté disponible. Si esta opción está habilitada, no podrá recuperar las actualizaciones en el proveedor, ya que éste no admite transacciones.

IndexAsAccessPath

Si el valor es distinto de cero, SQL Server tratará de utilizar los índices del proveedor para recuperar los datos. De forma predeterminada, los índices sólo se utilizan para metadatos y nunca se abren.

DisallowAdhocAccess

Si se establece un valor distinto de cero, SQL Server no permite el acceso ad hoc mediante las funciones OPENROWSET y OPENDATASOURCE en el proveedor OLE DB. Si no se establece esta opción, SQL Server tampoco permite el acceso ad hoc.

Esta opción controla la capacidad de los usuarios que no son administradores de ejecutar consultas ad hoc. Los administradores no se ven afectados por esta opción.

SqlServerLike

Si el valor es distinto de cero, el proveedor admitirá el operador LIKE, puesto que se implementa en SQL Server. Si se establece esta opción, SQL Server considerará la posibilidad de pasar al proveedor las consultas que tengan predicados LIKE en columnas remotas como parte de la evaluación de la consulta distribuida.

Las opciones del proveedor OLE DB operan en el proveedor. Cuando se establecen las opciones para un proveedor, la configuración se aplica a todas las definiciones de servidores vinculados que utilizan el mismo proveedor OLE DB.

Opciones de servidor vinculado

Además de las opciones de proveedor descritas anteriormente, existen varias opciones para administrar consultas distribuidas en el servidor vinculado mediante sp_serveroption. A diferencia de las opciones de proveedor, las de servidor sólo afectan al comportamiento en el servidor vinculado especificado.

La tabla siguiente describe las diferentes opciones de servidor vinculado.

Opciones de servidor vinculado

Descripción

use remote collation

Si su valor es true, SQL Server utilizará la información de intercalación de las columnas de caracteres del servidor vinculado. Si el servidor vinculado es una instancia de SQL Server, la información de intercalación se obtiene automáticamente de la interfaz del proveedor OLE DB de SQL Server. Si el servidor vinculado no es una instancia de SQL Server, SQL Server utilizará el juego de intercalación de la opción collation name.

Si su valor es false, SQL Server interpretará los datos de caracteres del servidor vinculado especificado en la intercalación predeterminada de la instancia local de SQL Server.

collation name

Esta opción especifica la intercalación que se utilizará para los datos de caracteres del servidor vinculado si el valor de use remote collation es true. Esta opción se omitirá si el valor de use remote collation es false o si el servidor vinculado es una instancia de SQL Server.

connection timeout

Esta opción especifica el tiempo de espera (en segundos) que se utilizará cuando SQL Server intente realizar una conexión al servidor vinculado. Si no se establece esta opción, se utilizará como valor predeterminado el valor actualmente establecido para la opción de configuración global remote login timeout.

lazy schema validation

Si esta opción es false (valor predeterminado), SQL Server comprobará en las tablas remotas los cambios realizados en el esquema desde la compilación. Esta comprobación se realiza antes de la ejecución de la consulta. Si hay un cambio en el esquema, SQL Server volverá a compilar la consulta con el nuevo esquema.

Si el valor de esta opción es true, se demorará la comprobación del esquema en las tablas remotas hasta la ejecución. Como consecuencia, puede que la consulta distribuida provoque un error si el esquema de una tabla remota ha cambiado entre la compilación de la consulta y la ejecución.

Puede establecer esta opción como true cuando se utilicen vistas divididas distribuidas en un servidor vinculado que ejecute SQL Server. Es posible que una de las tablas que participa en la vista dividida no se utilice en una ejecución concreta de una consulta en la vista. Por lo tanto, aplazar la validación del esquema puede ayudar a mejorar el rendimiento.