gpt4 book ai didi

sql - ADO.net是仅在指定的存储过程调用之后返回结果,还是要等到所有触发器执行后才返回结果?

转载 作者:行者123 更新时间:2023-12-03 12:49:52 24 4
gpt4 key购买 nike

我试图在数据库中记录nvarchar(max)字段中使用的每个单词,每个单词将成为一个数据行,并且在一个存储过程中执行此操作会花费很多时间。因此,我创建了另一个存储过程,该过程将所有单词添加为另一个表中的新数据行,但是它花费的时间很长,我不希望用户等待此操作。我的解决方案是在单独的进程(system.thread)中运行耗时的插入查询操作,但是现在我想到了触发器。如果我在触发器中触发所有单词的插入,用户是否仍将等待所有插入查询,包括触发器?还是SQL将运行存储过程,将结果返回给用户,然后触发器将运行?假设触发器在触发器之后。

最佳答案

触发器将与存储过程一起顺序运行,并且用户将不得不等待m完成。

您要么按照指示在单独的线程中运行存储过程,要么按计划运行单独的后台进程以提取更新的记录,然后延迟将更新应用于相关表。像这样批量更改将提高整体性能,但是这意味着在完全更新数据时会有更长的延迟。

要注意的另一件事是,如果您利用适当的缓存功能,那么单词表是否已完全标准化。也许您可以简单地加快这些插入的速度,从而解决了问题,而没有多线程的复杂性或延迟。

关于sql - ADO.net是仅在指定的存储过程调用之后返回结果,还是要等到所有触发器执行后才返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7549974/

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