新解决SQL Server并发的方法
您可以在优化数据库查询,升级数据库服务器,但仍不足以保证应用程序良好的数据库性能.这是因为问题可能产生于系统中并发(指同步)地执行查询操作.实际上,在产品化的数据库系统中,同步执行查询可能引发的问题是再多的查询优化也不能解决的.我们可以有最优化的、执行最快的查询,但是,如果这些查询因为并发问题得不到需要的数据,说明优化工作还做得不够充分。从根本上讲,我们必须保证数据库查询和执行查询的连接必须能够在并发执行中没有错误(如死锁或更新冲突),并能在可接受的等待时间内得到结果.如果不能做到,就要定位并发问题并找出原因:为什么独立运行查询时正确,并发运行时就出问题.
解决并发问题的过程是一个基于经验的过程.模仿产品环境并不容易,从许多同步连接中预测查询操作并发时的行为也很难.这就是为什么必须经常保留系统状态,才能在并发问题发生时诊断问题的原因.
大多数情况下并发问题是一个SQL Server进程(或任务)等待某种资源,而这种资源还没有被其他进程释放.如果两个进程串行,就不会有冲突;当它们并行时,对某种资源的冲突就产生了.这些等待大多由对用户资源的锁请求造成的.
在本章中,我们将会学习到解决并发问题的技术.概括地讲,就是诊断和解决以下情况:锁、阻塞和死锁.基本的方法简单明了:
分享到: