我正在使用SQL Server 2005.此 table1 上有更多并发访问权限。
当我在SQL浏览器中执行以下查询时,我获得了2000条记录,但是当使用java执行相同的查询时,没有记录变化。
EX: 1st execution --> 2000 records,
2nd execution --> 2005 records,
3rd execution --> 1990 records
select
REGISTRATION_NO as TOTAL_ASSETS_COUNT
from
Contable1 a
inner join
table2 b on a.REGISTRATION_NO = b.Registration_no
and a.System_id = b.System_id
inner join
table3 c on b.Registration_no = c.VehicleNo
and b.System_id = c.System_id
where
a.CLIENTID = ? and a.System_id = ? and b.User_id=?
我正在使用隔离级别 READ COMMITTED 。
由于 table1 上的高交易,计数会有所不同。
请帮助解决为什么计数在java中的变化。
注意:Registration_No
是主键。
提前致谢。
答案 0 :(得分:1)
正如您所说,由于交易量很大,计数存在差异。
可能有以下可能会有不同的数量:
1)在您阅读数据之前,可能会在后台发生一些事务。或
2)您加入的表格中可能存在一些重复数据。
3)由于 @greet 表示您加入的其他表格的值可能会发生变化。
因为我会要求您正确检查查询。如果你声称以上不是可能性。我请求您提供有关表模式的更多详细信息。