对一个表的操作会卡住,这个是什么原因啊?
首先我在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使用锁来保证数据的一致性,如果不用锁的话,可能导致脏数据。