我在 SQL Server 数据库中有一个表,其中记录了用户的最新活动时间。有人可以确认一下,当同时收到不同用户的多个更新请求时,SQL Server 会自动处理这种情况。我预计此表上有 25-50 个并发更新请求,但每个请求负责更新表中的不同行。我需要额外的东西,比如连接池等吗?
问问题
11998 次
1 回答
9
是的,Sql Server 将处理这种情况。
它是一个 SGDB,它期望像这样的场景。
当您在 Sql 中插入/更新/删除一行时,sql 将锁定表/行/页以保证您将能够做您想做的事情。当您完成插入/更新/删除行时,该锁将被释放。
检查此链接
但是有几件事你应该做:
1 - 确保你会快速做你想做的事情。由于锁定问题,如果您保持连接时间过长,则对同一个表的其他请求可能会被锁定,直到您完成,这可能导致超时。
2 - 始终使用事务。
3 - 确保调整索引的填充因子。检查MSDN 上的填充因子。
4 -根据您的需要调整隔离级别。
5 - 摆脱未使用的索引以加快您的插入/更新。
连接池与您的问题不太相关。连接池是一种技术,可避免每次发送请求时创建与数据库的新连接的额外开销。在 C# 和其他使用 ADO 的语言中,这是自动完成的。看看这个:SQL Server 连接池。
其他可能有用的链接:
于 2012-10-26T12:54:15.733 回答