【发布时间】:2022-01-20 08:13:41
【问题描述】:
我创建了两个具有不同功能的程序(第一个和第二个)。但这两个程序将数据插入到一个表中。如果我有两个应用程序用户,第一个用户运行第一个程序,第二个用户运行第二个程序。我想知道这两个过程是否会并行运行。
【问题讨论】:
-
不同的应用程序 => 不同的连接 => 并行执行。
我创建了两个具有不同功能的程序(第一个和第二个)。但这两个程序将数据插入到一个表中。如果我有两个应用程序用户,第一个用户运行第一个程序,第二个用户运行第二个程序。我想知道这两个过程是否会并行运行。
【问题讨论】:
简短回答:写入同一张表的存储过程可以并行运行。
您必须注意某些条件才能无缝执行。
为了弄清楚这一点,我们需要了解 DBMS 中的 transactions。
您在数据库中执行的每个操作都经过一个事务。事务将尝试获取它正在尝试进行更改的资源的锁定。当另一个进程也对具有打开事务的同一资源发出锁定请求时,将发生Deadlock。为避免这种情况,我们需要更改 DBMS isolation。
如果您同时从 2 个不同点更新(软删除)或删除(硬删除)同一张表中的记录,您的进程可能会导致死锁,但普通插入不会面临大多数数据库设置中的任何问题。
如果您觉得这个答案有帮助,请投票。
【讨论】: