- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 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/
我创建了一个分支来开发新功能。由于这个新功能完全是作为一个新项目开发的,唯一可能的冲突来源是解决方案文件。 随着功能的开发,主分支更新了几次。当我完成开发和测试时,我做了: git checkout
我是一名优秀的程序员,十分优秀!