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

单条查询查不出结果
本帖最后由 sywan3596 于 2012-10-29 19:06:41 编辑 各位:
    请教一个很奇怪的问题,我有一个表,大概10万条记录,查单条记录很长时间查不出来。且用sp_who语句马上就能检测到死锁,这可能是什么原因啊? 

   语句如下:
     select  * from ItemAllotAnalysis
     where fchrItemID = '6EF9804D-01E9-4FEE-9A6A-0000C7DE38F5'

  在线等答复!
------解决方案--------------------
别随便一说就是死锁。。。

fchrItemID 如果这个没索引。相当于是扫描所有的数据而已。
------解决方案--------------------
你的fchrItemID 列不是主键吧?
给这个列建一个index吧。
------解决方案--------------------
引用:
各位:
  请教一个很奇怪的问题,我有一个表,大概10万条记录,查单条记录很长时间查不出来。且用sp_who语句马上就能检测到死锁,这可能是什么原因啊? 

  语句如下:
  select * from ItemAllotAnalysis
  where fchrItemID = '6EF9804D-01E9-4FEE-9A6A-0000C7DE38F5'

  在线等答复!




  这是唯一的商品ID号。 执行上述语句后,用SP_WHO去检测,马上就能发现有进程状态为:suspened,出现了挂起。
------解决方案--------------------
考虑多加点条件在where中(可以从业务中入手),然后对fchrItemID做索引,由于你那个是GUID,所以就算有索引,都会比较慢,因为索引太宽了。
------解决方案--------------------
10W条数据 不是很多啊,

你确定 你没有用 忘记关闭数据库的地方。或是忘记Commit 影响了 SELECT。
------解决方案--------------------
楼上说的有道理,是不是事务没控制好