gpt4 book ai didi

sql-server-2008 - 当一个 SQL 表同时收到多个更新请求时会发生什么?

转载 作者:行者123 更新时间:2023-12-03 07:59:40 25 4
gpt4 key购买 nike

我在 SQL 服务器数据库中有一个表,我在其中记录了用户的最新事件时间。有人可以向我确认,当不同用户同时收到多个更新请求时,SQL Server 会自动处理这种情况。我期望在这个表上有 25-50 个并发更新请求,但每个请求负责更新表中的不同行。我是否需要一些额外的东西,比如连接池等等?

最佳答案

是的,Sql Server 将处理这种情况。

它是一个 SGDB,它期待这样的场景。

当您在 Sql 中插入/更新/删除一行时,sql 将锁定表/行/页以保证您能够做您想做的事。当您完成插入/更新/删除行时,此锁将被释放。

检查这个 Link

introduction-to-locking-in-sql-server

但是有几件事你应该做:

1 - 确保你会快速做你想做的事。由于锁定问题,如果您保持连接的时间过长,则对同一表的其他请求可能会被锁定,直到您完成为止,这可能会导致超时。

2 - 始终使用事务。

3 - 确保调整索引的填充因子。查询 Fill Factor在 MSDN 上。

4 - 调整 Isolation level根据你想要的。

5 - 删除未使用的索引以加快插入/更新速度。

连接池与您的问题不太相关。连接池是一种技术,可避免每次发送请求时创建到数据库的新连接的额外开销。在 C# 和其他使用 ADO 的语言中,这是自动完成的。看看这个:SQL Server Connection Pooling .

其他可能有用的链接:

best-practices-for-inserting-updating-large-amount-of-data-in-sql-2008

Speed Up Insert Performance

关于sql-server-2008 - 当一个 SQL 表同时收到多个更新请求时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13087197/

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