Я создаю пакет служб интеграции SQL Server 2005 для переноса данных из базы данных Sybase Adaptive Server Enterprise 12.5.4 в базу данных SQL Server 2005. База данных Sybase - это серверная часть продукта поставщика, который наша команда не имеет права изменять или управлять.
На начальных этапах разработки для доступа к базе данных Sybase я создал связанный сервер SQL Server, используя Microsoft OLE DB Provider для драйверов ODBC на моем конечном сервере базы данных. Создав этот связанный сервер, я создал свой пакет SSIS с одним источником данных - подключившись к базе данных «Назначение» MS SQL Server. Затем в своих задачах потока данных пакета SSIS я настроил источник OLE DB для доступа к одному источнику данных, определенному в пакете, с помощью команд SQL для доступа к исходному связанному серверу (просто используя SELECT col1, col2, col3 FROM [SybaseLinkedServer]. [ База данных] .dbo. [Таблица]). Назначение OLE DB в задаче потока данных использует тот же диспетчер соединений, что и источник OLE DB, но использует режим доступа к данным с быстрой загрузкой таблицы или представления.
Позже, в рамках проекта, я получил Sybase ASE OLE DB Provider (поставщик OLE DB v12.5.4 больше не был доступен, нам пришлось купить ASE SDK v15.7). Думая, что удаление связанного сервера из решения улучшит производительность, я изменил пакет SSIS, включив в него новый источник данных OLE DB, использующий Sybase ASE OLE DB Provider для прямого доступа к базе данных Sybase, и изменил источник OLE DB для использования нового Источник данных ASE OLE DB с режимом доступа к данным таблицы или просмотра.
К моему удивлению, переключение решения со связанного сервера с использованием поставщика OLEDB для драйверов ODBC на прямое соединение OLEDB с использованием поставщика Sybase ASE OLEDB дало значительно худшие результаты, что далеко от моих ожиданий. Результаты тестовых прогонов с использованием каждого метода доступны по этой гиперссылке.
Кто-нибудь сталкивался с подобными проблемами и / или следует ли ожидать такого поведения? Есть ли лучший способ настроить это для извлечения данных из Sybase ASE в MS SQL Server 2005?