日期:2014-05-17  浏览次数:20335 次

SQL Server 2005 更新数据特别慢
产品表近300w数据量,最近发现更新数据非常慢,连最简单的更新语句如:
update Products set ProductName='无名氏散文' where ProductId=1239

也需要非常长的时间,我猜是锁请求超时的问题,大家有什么解决方法?

操作系统:windows server 2008 企业版
数据库:sql server 2005 企业版
服务器配置:标准企业级服务器,8核cpu,32g内存
------解决方案--------------------
select * from  Products where ProductId=1239
速度如何? 如果不慢,肯定是遇到阻塞了。
------解决方案--------------------
适当的添加索引和去除无用的索引,可以减少阻塞的影响。
------解决方案--------------------
ProductName 此列上是否有索引?
------解决方案--------------------
没有索引会造成表扫描,加个非聚集索引看看
------解决方案--------------------
看错了,应该是在这里ProductId加索引刚才那个去掉。
------解决方案--------------------
把update的执行计划贴出来看看
------解决方案--------------------
阻塞很多情况是查询的速度不够快,其他会话在等待,所以应该考虑加快查询的速度
------解决方案--------------------
等待资源是什么?有没有IO瓶颈?
------解决方案--------------------
另外版主说的执行计划贴出啦。