8

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

4

1 回答 1

9

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

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

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

检查此链接

介绍-locking-in-sql-server

但是有几件事你应该做:

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

2 - 始终使用事务。

3 - 确保调整索引的填充因子。检查MSDN 上的填充因子

4 -根据您的需要调整隔离级别。

5 - 摆脱未使用的索引以加快您的插入/更新。

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

其他可能有用的链接:

sql-2008 中插入更新大量数据的最佳实践

加快插入性能

于 2012-10-26T12:54:15.733 回答