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

有人也碰到过数据插入后要等一段时间才能读取到
曾经有人来我家装宽带的时候
一开始要到网站上手动输个初始密码
对方工作人员就是输了之后,网站上已提交,但是查不到,过十几秒才查到

再之前我在资产管理和基金公司里面也碰到过SQL Server这样,很短的几秒,但确实有
insert之后查不到

现在我碰到,一个过程,保存临时表,然后从临时表读取的时候,由于临时表有点大了
所以读取的时候没读全。
我把过程里的东西分开手动执行,读取的数据就是完整的。

我现在的上司不相信我。
想问问,是不是你们也碰到过这个问题。

------解决方案--------------------
你这个貌似和事务有关吧。还有就是是否有阻塞,另外查询查不到可能也和时间太久也就是查询性能有关
------解决方案--------------------
给我4分就行,谢谢,帮顶
------解决方案--------------------
同意版主说的,如果有数据并且没有Blocking或者数据量不大应该很快会出结果。 如果数据量大看看TOP 1有没有值?
------解决方案--------------------
--#1.首先,要相信SQL SERVER,其实要真正了解SQL SERVER的原理
--#2.提交后,未查到,可能是他们的服务器读写分离架构造成的延迟。
--#3.没明白,楼主指的没读全是什么意思?得具体看你的代码。
假如进程A以一个事务插入100W条数据,进程B在插入开始时,一直读此表,则:
#1.100W条数据,要么都成功,要么都失败
#2.在进程A成功前,B进程始终读不到这100W条记录中的任何一条(数据库默认隔离级别下),如果想在A插入未完成前,也能读取得到,那么在B的查询中表名后面加WITH(NOLOCK)提示。select * from tablename with(nolock)
#3.问题,跟表的大小没关系。应该存在其它原因
------解决方案--------------------
#1.提交的表和真正的数据表之间可能存在缓存,类似机制。
#2.真正更新后,读取的表和真正的数据表之间存在同步。
如果提交和查询只连一张表,应该不会出现楼主据说的情况。