【问题标题】:SQL Server run trigger backgroundSQL Server 运行触发器后台
【发布时间】:2012-11-13 18:23:31
【问题描述】:

在 PHP、SQL Server 中,

PHP 将插入缺少的记录,对于每个我都调用一个触发器。

Trigger 需要将近 20 分钟才能完成触发过程,所以我的 PHP 脚本每次插入都要等待 20 分钟,那么如何在后台运行触发过程并继续 PHP 插入过程而不是每次插入等待 20 分钟.

PHP 或 SQL Server 中的任何建议。

【问题讨论】:

  • 我会考虑彻底重新设计。一个 tigger 消耗 20 分钟,使数据库无法使用。
  • 同意@bummi。如何让触发器在另一个表中插入一条记录,然后将该表用作由后台任务处理的工作队列。这需要某种后台进程,所以不确定您是否可以在纯 PHP 中执行此操作,但我不是 PHP 专家。
  • 我们并不完全在 PHP 中做事,但就像在后台进程中使用一些服务器变量来触发一样。就像在linux中在后台执行命令一样,我们在命令末尾添加&

标签: php sql sql-server tsql


【解决方案1】:

要解决此问题,您需要解决触发器执行需要 20 分钟的原因 - 它可能是执行表扫描而不是索引扫描来检查我猜测的是否存在,或者使用游标。

但是,要回答您的问题,请创建第二个表(没有触发器),在其中插入行,然后执行一个 SQL 作业,每 x 分钟运行一次,从该表中取出数据,然后插入到您的主表中触发缓慢。

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-20
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-23
      • 1970-01-01
      相关资源
      最近更新 更多