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

对一个表的操作会卡住,这个是什么原因啊?
首先我在SQL 2005 查询分析器里面,对一个大表进行查询操作,大约要10分钟左右
然后在 这10分钟里面我对这个表进行插入数据,就是插不进去。。。这是为什么啊?
要等到这个查询完了,才能插入数据啊,这个查询时还有锁表吗?
怎么让他弄成不锁表的啊?

------解决方案--------------------
查询时候,锁的页多了,会自动升级为锁表。哈哈
------解决方案--------------------
查询都要那么长时间,不属于正常范围,快点找解决方案吧.最能能够建索引,提高查询速度

查询的时候是可以带锁的,锁有类型有:

WITH NOLOCK:无锁 
WITH HOLDLOCK:挂一个保持锁 
WITH UPDLOCK:挂一个更新锁 
WITH XLOCK:挂一个排他锁 

如:
select   * from tb with(NOLOCK) 
select   * from tb with(HOLDLOCK) 
select   * from tb with(XLOCK) 
select   * from tb with(UPDLOCK)


------解决方案--------------------
#1.你的表有主键吗?是自增列吗?
#2.你的表有唯一索引吗,或唯一约束吗?
#3.你用SELECT * FROM TB WITH(NOLOCK)查询,然后再插入,看可以吗?
------解决方案--------------------
请楼主把表结构、索引、查询语句、数据量,贴出来看看。
------解决方案--------------------
使用NOLOCK或者改变隔离级别。 SQL Server使用锁来保证数据的一致性,如果不用锁的话,可能导致脏数据。