Поделиться через


Настройка поставщиков OLE DB для распределенных запросов

SQL Server предоставляет несколько дополнительных параметров для управления распределенными запросами. Некоторые из параметров управляются на уровне поставщика, остальные — на уровне связанного сервера с помощью хранимой процедуры sp_serveroption. Только опытные системные администраторы должны производить настройку этих дополнительных параметров.

Параметры поставщика OLE DB

Параметры поставщика OLE DB для управления распределенными запросами можно установить в среде SQL Server Management Studio. В обозревателе объектов щелкните правой кнопкой мыши имя поставщика и выберите Свойства. В следующей таблице описываются доступные параметры поставщика.

Параметр поставщика

Описание

DynamicParameters

Если не равен нулю, указывает, что поставщик позволяет применять в параметризованных запросах маркер параметров ?. Этот параметр следует устанавливать только в том случае, если поставщик поддерживает интерфейс ICommandWithParameters и воспринимает символ ? как маркер параметров. Установка этого параметра позволяет SQL Server выполнять на поставщике параметризованные запросы. Применение параметризированных запросов к провайдеру может повысить производительность определенных запросов.

NestedQueries

Если не равен нулю, указывает, что поставщик позволяет использовать вложенные инструкции SELECT в предложении FROM. Установка этого параметра позволяет SQL Server передавать поставщику запросы, содержащие вложенные инструкции SELECT в предложении FROM.

LevelZeroOnly

Если не равен нулю, у поставщика можно вызвать только интерфейсы OLE DB уровня 0.

AllowInProcess

Если не равен нулю, SQL Server допускает создание экземпляра поставщика как внутрипроцессорного сервера. Если этот параметр в реестре не установлен, по умолчанию экземпляр поставщика создается вне процесса SQL Server. Работа экземпляра поставщика вне процесса SQL Server позволяет защитить процесс SQL Server от ошибок поставщика. Если экземпляр поставщика создан вне процесса SQL Server, операции обновления и вставки, включающие столбцы больших объектов (varchar(max), nvarchar(max), varbinary(max), text, ntext и image), недопустимы.

Экземпляр поставщика OLE DB для собственного клиента SQL Server не может быть создан вне процесса. Если поставщик OLE DB для собственного клиента SQL Server настроен на запуск вне процесса, то при попытке запуска распределенного запроса возникнет ошибка.

NonTransactedUpdates

Если не равен нулю, SQL Server допускает обновления даже при отсутствии интерфейса ITransactionLocal. Если этот параметр включен, обновления на поставщике необратимы, поскольку он не поддерживает транзакции.

IndexAsAccessPath

Если не равен нулю, SQL Server пытается при выборке данных пользоваться индексами поставщика. По умолчанию индексы используются только для метаданных и никогда не открываются.

DisallowAdhocAccess

Если не равен нулю, SQL Server не позволяет нерегламентированный доступ к поставщику OLE DB через функции OPENROWSET и OPENDATASOURCE. Если этот параметр не установлен, SQL Server также не позволяет нерегламентированный доступ.

Этот параметр управляет возможностью пользователей, не являющихся администраторами, запускать нерегламентированные запросы. На администраторов этот параметр не влияет.

SqlServerLike

Если не равен нулю, поставщик поддерживает оператор LIKE в том же виде, как он реализован в SQL Server. Если этот параметр установлен, SQL Server при выполнении распределенного запроса передает поставщику запросы, содержащие предикаты LIKE, к удаленным столбцам, как части вычисления распределенного запроса.

Параметры поставщика OLE DB действуют на уровне поставщика, то есть если эти параметры установлены для поставщика, они относятся ко всем определениям связанных серверов, которые пользуются данным поставщиком OLE DB.

Параметры связанного сервера

Как отмечалось ранее, для управления распределенными запросами помимо параметров уровня поставщика существуют параметры уровня связанного сервера, которые доступны через хранимую процедуру sp_serveroption. В отличие от параметров уровня поставщика, эти параметры влияют только на работу конкретного связанного сервера.

В следующей таблице приведены описания параметров связанных серверов.

Параметры связанного сервера

Описание

использовать удаленные параметры сортировки

Если параметр установлен в значение true, то SQL Server использует сведения о параметрах сортировки символьных столбцов связанного сервера. Если связанный сервер является экземпляром SQL Server, сведения о режиме сопоставления автоматически наследуются интерфейсом поставщика OLE DB SQL Server. Если связанный сервер не является экземпляром SQL Server, SQL Server использует параметры сортировки, которые указаны параметром имя параметров сортировки.

Если параметр установлен в значение false, SQL Server интерпретирует данные, полученные с указанного связанного сервера, в параметрах сортировки экземпляра локального SQL Server по умолчанию.

имя параметров сортировки

Определяет режим сопоставления, применяемый к символьным данным, полученным от связанного сервера, если параметр использовать удаленные параметры сортировки установлен в значение true. Этот параметр игнорируется, если параметр использовать удаленные параметры сортировки установлен в значение false или если связанный сервер является экземпляром SQL Server.

время ожидания соединения

Указывает время ожидания (в секундах), в течение которого SQL Server пытается создать соединение со связанным сервером. Если этот параметр не установлен, по умолчанию принимается текущее значение глобального параметра конфигурации remote login timeout.

отложенная проверка схемы

Если этот параметр установлен в значение false (значение по умолчанию), SQL Server проверяет изменения схемы, произошедшие в удаленных таблицах с момента компиляции. Эта проверка выполняется перед выполнением запроса. Если в схеме обнаружены изменения, SQL Server соответствующим образом перекомпилирует запрос.

Если этот параметр установлен в значение true, проверка схемы удаленных таблиц откладывается до окончания выполнения. Это может привести к ошибке при выполнении распределенного запроса, если схема удаленной таблицы изменилась между моментом компиляции и моментом выполнения запроса.

Установка этого параметра в значение true может потребоваться в том случае, если имеются распределенные секционированные представления, относящиеся к связанному серверу SQL Server. Указанная таблица, участвующая в секционированном представлении, может и не участвовать в выполнении конкретного запроса, который ссылается на такое представление. Таким образом, отложив проверку схемы, можно повысить производительность.