【发布时间】:2019-03-25 14:18:07
【问题描述】:
假设我在 SQL Server 数据库中有以下情况。
这些是数据库中的表:
- 表1
- 表2
- 关联触发器:插入时触发器 (trigger1)
- 表3
数据库包含一个存储过程sp1(带参数)。
现在,sp1 是这样工作的:
-
sp1正在 2 秒内从Table1收集一些行 - 根据这些行的值,可能某些行会被插入到
table2(插入需要 1 秒),当然插入会导致trigger1触发 -
trigger1在Table3中插入或更新一些行(需要多花 2 秒) -
sp1在步骤1-3之后还没有完成,它继续工作2秒处理然后完成
假设有一个应用程序(例如 Java、C# 或其他)连续调用 sp1 100 次(调用比执行 sp1 快得多)。
我想了解处理流程是如何工作的。
有没有并行性?
sp1 是否等待trigger1 完成后再继续第 4 步?
从应用程序调用sp1 时,是否每次调用都必须等待才能继续下一次调用?
【问题讨论】:
-
您在这里提出了 3 个不同的问题。请记住,规则是每个帖子一个问题。顺便说一句,你可以设置一个演示并在比你发布这篇文章后的 1 小时内测试所有这些......
-
@ZoharPeled,我认为这三个问题是相关的。我可以将它们结合起来提出一个问题,但这并不容易理解。我正在设置一个演示来了解自己,如果我这样做了,当然我会在这里分享知识让大家知道。
标签: sql sql-server stored-procedures relational-database database-trigger