微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

背景:

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

题:

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

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

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

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

解决方法

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

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

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

原文地址:https://www.jb51.cc/mssql/80568.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐