gpt4 book ai didi

asp.net - SQL Server 数据库在触发器执行时挂起

转载 作者:搜寻专家 更新时间:2023-10-30 20:01:56 24 4
gpt4 key购买 nike

我们在一个表上实现了 6-7 个触发器,其中有 4 个更新触发器。由于数据操作和条件,所有 4 个触发器都需要长时间处理。但是每当触发器执行时,网站上的所有页面都会停止响应,并且也会为来自不同系统的所有其他用户挂起。即使我们在 SQL Server Management Studio 中对触发器持有表执行更新语句,它也会挂起。我们能否通过将此触发代码转移到存储过程中并在表更新语句后调用此存储过程来解决此挂起问题?

因为我认为触发器会在执行时阻止其他用户访问表。如果没有,那么任何人都可以提供解决方案。

最佳答案

触发器很危险 - 只要有事情发生,它们就会被触发,而您无法控制它们触发的时间和频率。

您绝对应该在触发器中进行任何耗时的处理!扳机应该超快且精巧。

如果您需要处理 - 让触发器将所需的信息记录到一个单独的“命令”表中,并让另一个进程(例如,计划的 SQL 代理作业)检查该表中要执行的命令,然后执行这些命令- 独立于主应用程序,在单独的执行路径中。

不要通过在触发器中进行过多的数据处理/操作来阻止您的主应用程序!这是错误的地方!

关于asp.net - SQL Server 数据库在触发器执行时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21987054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com