SQL Server如何处理同时的读/写请求?
背景:
我们有一个大量使用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). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |