Опрос больших данных из базы данных - PullRequest
0 голосов
/ 01 февраля 2012
  I have written stored procedure to poll the data from the database in biztalk.but the datasize is very large its around 80MB...Due to which i am getting error.Does anyone knows what configuration do i need to change to poll that much big amount of data.

в таблице. EDI834_5010_2300. У меня есть около 35000 строк. Мне нужно собрать данные в зависимости от этой таблицы.

Ответы [ 2 ]

2 голосов
/ 01 февраля 2012

Что вы подразумеваете под большим количеством данных?Поля больших пятен или много рядов?Если последнее является причиной - измените вашу процедуру, чтобы она возвращала данные в чанках, и установите PollWhileDataAvailable = true в адаптере.

В одном из моих текущих проектов я использую такой код процедуры для получения данных в чанках:

DECLARE @SubsetOfChanges TABLE (ChangeID BIGINT PRIMARY KEY)

INSERT INTO @SubsetOfChanges
SELECT TOP 100 ChangeID FROM bts_DatabaseChanges WHERE Processed = 0 AND TableName = 'Producer'

SELECT p.*, changes.Operation as operation, changes.RowKey AS original_id 
FROM (SELECT * FROM bts_DatabaseChanges WHERE ChangeID IN (SELECT * FROM @SubsetOfChanges)) AS changes
JOIN [region].[dbo].crm_clsProducer p ON changes.RowKey = p.producer_id  

UPDATE bts_DatabaseChanges
SET Processed = 1
WHERE ChangeID IN (SELECT * FROM @SubsetOfChanges)

bts_DatabaseChanges - это таблица журналов для всех изменений в БД.

1 голос
/ 01 февраля 2012

Используете ли вы WCF LOB-адаптеры для этого? Если это так, проверьте свойство MaxReceivedMessageSize в привязках вашего порта приема, чтобы оно увеличилось с 65000 байт по умолчанию.

...