检查表并运行存储过程

时间:2018-03-30 11:51:10

标签: sql sql-server

我在SQL Server中工作,这是场景。

以下是工作流程:

  1. 我们将每隔10-15秒从上游获取数据。 Upstream将直接将数据插入到我们的表中 - 这是我们的Staging

  2. 我们在此临时表上写了一个after insert触发器,它会将数据从Staging移动到Master表。现在主表还有一个After insert触发器,需要23秒才能完成

  3. 我们不确定最后一批数据何时会被上游提交

  4. 需要解决方案的问题区域

    1. 上游尝试每隔10秒将数据推送到我们的临时表中,如果Staging上的触发器启动,它将等到主表上的触发器完成。现在,在执行时间为24秒,如果我们从上游获取数据,因为STG被锁定,现在收到的数据因锁定而被丢弃
    2. 如果有任何潜在的解决方法,请告诉我们

1 个答案:

答案 0 :(得分:0)

Dan Guzman建议您可以摆脱临时表并使用存储过程处理所有内容。

也许更好,但更棘手的方法是使用消息队列而不是基于业务逻辑处理行的登台表和激活过程。

这可能是一种更适合流媒体数据的阻塞方式。