Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SSIS: Несколько SQL Server Destination в одном Data Flow Task  [new]
incold
Member

Откуда:
Сообщений: 1580
SQL Server 2005 (9.0.4035) x64

В пакете в одном Data Flow Task выполняется параллельно несколько (18) потоков загрузки данных в разные таблицы.
Используется SQL Server Destination.
Общее количество записей во всех потоках менее 5000

При выполнении часть потоков отрабатывается нормально, а часть выпадает в ошибку.
Текст ошибки:
[Dest Branches [8667]]
Error: SSIS Error Code DTS_E_OLEDBERROR.
An OLE DB error has occurred.
Error code: 0x80040E14. An OLE DB record is available.
Source: "Microsoft SQL Native Client"
Hresult: 0x80040E14
Description: "Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".".
An OLE DB record is available.
Source: "Microsoft SQL Native Client" Hresult: 0x80040E14
Description: "The OLE DB provider "BULK" for linked server "(null)" reported an error.
The provider did not give any information about the error.".
An OLE DB record is available.
Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "Reading from DTS buffer timed out.".


Для ошибочных потоков выполнена операция удаления и создания заново SQL Server Destination - ошибка остается.
Все службы работают на одном сервере - пакет отлаживается в BIDS там же.

Я попробую разделить на несколько Data Flow Task - но все-таки интересно что вызывает ошибку.

Возможно есть ограничение кол-ва компонентов SQL Server Destination в одном контейнере Data Flow Task?

Кто-нибудь сталкивался с таким? Есть ли еще предположения кроме указанного выше?
23 июн 09, 16:25    [7334108]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Несколько SQL Server Destination в одном Data Flow Task  [new]
LenaV
Member

Откуда: USA
Сообщений: 6748
автор
Source: "Microsoft SQL Native Client" Hresult: 0x80040E14
Description: "Reading from DTS buffer timed out.".


увеличить timeout не пробовали?
24 июн 09, 00:43    [7335561]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Несколько SQL Server Destination в одном Data Flow Task  [new]
incold
Member

Откуда:
Сообщений: 1580
LenaV
автор
Source: "Microsoft SQL Native Client" Hresult: 0x80040E14
Description: "Reading from DTS buffer timed out.".


увеличить timeout не пробовали?


Пробовал - не помогает.

Сначала я использовал OLE DB Destination, с ним все работало нормально, время выполнения Data Flow Task 3-4 сек.

Сейчас занят оптимизацией пакета, прочитав рекомендации заменил на SQL Server Destination, а с ним ошибка.
Можно конечно вернуть OLE DB Destination, но хочется разобраться в механизмах работы,
чтобы знать особенности использования SQL Server Destination там,
где должен быть серьезный выигрыш по скорости (как пишут в BOL и книгах).
...
После нескольких экспериментов выяснил - количество SQL Server Destination в одном Data Flow Task
никак не влияет на указанную выше ошибку.

Похоже дело в самих данных, а именно поля с Null и пустыми строками.

OLE DB Destination + Fast Load = insert bulk
SQL Server Destination = BULK Insert
Отсюда

Свойство BulkInsertKeepNulls = True не помогает
Пока еще разбираюсь.
24 июн 09, 10:14    [7336046]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить