加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server如何处理同时的读/写请求?

发布时间:2020-12-12 16:57:27 所属栏目:MsSql教程 来源:网络整理
导读:背景: 我们有一个大量使用SQL Server 2008数据库的应用程序.我们正在尝试优化此应用程序.它是单线程的,我们注意到通过应用程序的日志记录/分析,最大的瓶颈是db读/写.有些电话需要100毫秒,这对我们来说太长了.在其他优化中,我们将其中一些调用拆分为一个单独
背景:

我们有一个大量使用SQL Server 2008数据库的应用程序.我们正在尝试优化此应用程序.它是单线程的,我们注意到通过应用程序的日志记录/分析,最大的瓶颈是db读/写.有些电话需要100毫秒,这对我们来说太长了.在其他优化中,我们将其中一些调用拆分为一个单独的线程.仅从这个变化,我们看到处理时间有了很大的改进(代码几乎完全相同,只是一些已被移入另一个线程)

题:

假设在内存中运行代码所花费的时间可以忽略不计,我猜想在另一个线程中执行某些读/写操作不会产生任何性能提升.我觉得如果SQL Server只是对请求进行排队,那么无论如何都不能并行进行读/写操作,因此处理时间会相似.不是这种情况.

我想知道SQL Server如何处理来自不同线程的两个同时请求(任何读/写组合).它能以某种方式同时执行它们吗?

总之,我假设一个接一个地调用的Query1 Query2的总时间类似于同时调用的Query1 Query2.

这是在双核服务器上运行的.

解决方法

SQL Server是一个多用户数据库.它主要用于处理多个同时请求.

理想情况下,在串行执行时获取A B的两个查询在同时执行时将采用MAX(A,B).

为了防止读取或写入损坏的数据,SQL Server使用Transactions和Locking.除此之外,应用程序也可以管理并发(例如,optimistic).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读