Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据库中的并发插入_C#_Sql Server - Fatal编程技术网

C# 数据库中的并发插入

C# 数据库中的并发插入,c#,sql-server,C#,Sql Server,我正在构建一个程序,从六个不同的来源获取推送数据,并将数据插入数据库。每个源都有自己的函数,可以在插入时立即执行插入,但所有源都会写入同一个表 我有以下问题: 如果一个源当前正在向表中写入数据,而另一个源同时开始写入数据,那么插入是否有可能相互阻塞 该表还经常被用来通过一个视图读取数据,该视图连接更多的表以显示数据,这会带来任何问题吗 目前,每个源都有自己的DB连接来写入数据,最好只有一个连接,还是让每个源都使用自己的连接 阻止“彼此”,即不可能死锁 没问题。只有当select太慢时,它才能

我正在构建一个程序,从六个不同的来源获取推送数据,并将数据插入数据库。每个源都有自己的函数,可以在插入时立即执行插入,但所有源都会写入同一个表

我有以下问题:

  • 如果一个源当前正在向表中写入数据,而另一个源同时开始写入数据,那么插入是否有可能相互阻塞

  • 该表还经常被用来通过一个视图读取数据,该视图连接更多的表以显示数据,这会带来任何问题吗

  • 目前,每个源都有自己的DB连接来写入数据,最好只有一个连接,还是让每个源都使用自己的连接

  • 阻止“彼此”,即不可能死锁
  • 没问题。只有当
    select
    太慢时,它才能延迟下一次插入
  • 不同的连接没有问题
  • 阻止“彼此”,即不可能死锁
  • 没问题。只有当
    select
    太慢时,它才能延迟下一次插入
  • 不同的连接没有问题

  • 请找到下面的内联答案

    如果一个源当前正在向表中写入数据,而另一个源同时开始写入数据,那么插入是否有可能相互阻塞

    在这种情况下,另一个资源将等待它。(Insert将处于等待状态,等待下一个资源)

    该表还经常被用来通过一个视图读取数据,该视图连接更多的表以显示数据,这会带来任何问题吗

    没问题

    目前,每个源都有自己的DB连接来写入数据,最好只有一个连接,还是让每个源都使用自己的连接

    最好有一个DB连接


    请找到下面的内联答案

    如果一个源当前正在向表中写入数据,而另一个源同时开始写入数据,那么插入是否有可能相互阻塞

    在这种情况下,另一个资源将等待它。(Insert将处于等待状态,等待下一个资源)

    该表还经常被用来通过一个视图读取数据,该视图连接更多的表以显示数据,这会带来任何问题吗

    没问题

    目前,每个源都有自己的DB连接来写入数据,最好只有一个连接,还是让每个源都使用自己的连接

    最好有一个DB连接

    如果一个源当前正在写入表,而另一个源 在同一时间开始写作插入是否有可能 互相阻拦

    这取决于索引。如果索引键具有相同或连续的值,则在事务期间可能会看到short=term阻塞

    该表还经常用于通过视图读取数据 连接更多的表来显示数据,这个姿势可以吗 问题

    这取决于隔离级别。如果出现以下情况,则不会发生阻塞:

    • SELECT
      查询正在
      READ\u COMMITTED
      隔离级别和
      READ\u COMMITTED\u SNAPSHSOT
      数据库选项已打开

    • SELECT
      查询不涉及未提交的数据

    • SELECT
      查询在
      READ\u UNCOMMITTED
      隔离级别中运行

    即使发生阻塞,如果
    INSERT
    事务很短,阻塞也可能很短

    目前,每个源都有自己的DB连接来写入数据,您会这样做吗 最好只有一个连接,或者让每个连接使用自己的连接

    取决于你试图解决的问题。单个连接将确保插入不会相互阻塞/死锁,但无论如何也可能不是问题

    如果一个源当前正在写入表,而另一个源 在同一时间开始写作插入是否有可能 互相阻拦

    这取决于索引。如果索引键具有相同或连续的值,则在事务期间可能会看到short=term阻塞

    该表还经常用于通过视图读取数据 连接更多的表来显示数据,这个姿势可以吗 问题

    这取决于隔离级别。如果出现以下情况,则不会发生阻塞:

    • SELECT
      查询正在
      READ\u COMMITTED
      隔离级别和
      READ\u COMMITTED\u SNAPSHSOT
      数据库选项已打开

    • SELECT
      查询不涉及未提交的数据

    • SELECT
      查询在
      READ\u UNCOMMITTED
      隔离级别中运行

    即使发生阻塞,如果
    INSERT
    事务很短,阻塞也可能很短

    目前,每个源都有自己的DB连接来写入数据,您会这样做吗 最好只有一个连接,或者让每个连接使用自己的连接

    取决于你试图解决的问题。单个连接将确保插入不会相互阻塞/死锁,但无论如何也可能不是问题