【问题标题】:Polling large Data from the database从数据库轮询大数据
【发布时间】:2012-01-31 21:26:05
【问题描述】:
  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_2300Loop 中,我有大约 35000 行我需要根据这个表来整理数据

【问题讨论】:

    标签: biztalk biztalk-2009 biztalk-2010 biztalk2006r2


    【解决方案1】:

    您所说的大量数据是什么意思?大 blob 字段或多行?如果是后者 - 修改您的过程以分块返回数据并在适配器中设置 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 是数据库中所有修改的日志表。

    【讨论】:

    • 这意味着行数很大......在我的过程中要改变什么,以便它将以块的形式返回数据......
    • 谢谢 Dmitry。让我试试这个方法。
    • 我的存储过程就像上面一样,我无法使用您的示例进行更改。您能帮我吗?
    【解决方案2】:

    您是否为此使用 WCF LOB 适配器?如果是这样,请检查发送接收端口上绑定的 MaxReceivedMessageSize 属性,以从默认的 65000 字节增加。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-18
      • 2018-10-01
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      相关资源
      最近更新 更多