Jakarta ee sql浏览器和java JDBC中的计数不匹配,这是由于高事务

Jakarta ee sql浏览器和java JDBC中的计数不匹配,这是由于高事务,jakarta-ee,sql-server-2005,transactions,Jakarta Ee,Sql Server 2005,Transactions,我正在使用SQLServer2005。此表1上有更多并发访问 当我在SQL浏览器中执行以下查询时,我得到了2000条记录,但是当使用java执行相同的查询时,没有记录发生变化 EX: 1st execution --> 2000 records, 2nd execution --> 2005 records, 3rd execution --> 1990 records select REGISTRATION_NO as TOTAL_ASSE

我正在使用SQLServer2005。此表1上有更多并发访问

当我在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=?
我使用隔离级别作为读取提交

由于表1上的高交易量,计数有所不同

请帮助解决java中计数变化的原因

注意:
Registration\u No
是主键


提前谢谢。

正如您所说的,由于交易量大,计数有变化

可能存在以下各种可能性:

1) 在读取数据之前,可能会在后台发生一些事务。或

2) 您加入的表中可能有一些重复数据

3) 正如@greet所说,您加入的其他表的值可能会发生变化


因为我会要求您正确检查查询。如果你声称以上是不可能的。我要求您提供有关表模式的更多详细信息

您说由于表1上的高交易量,计数是不同的。。这不是回答了您的下一个问题吗?请帮助解决为什么java中的计数不同。?@geert3感谢您的回答。。发生这种情况的根本原因是什么?wat是对表上并发访问的限制我假设每个记录计数在计算时都是准确的,并且随时间变化是正常的。鉴于交易数量众多,在任何特定时间都可能有所不同。为什么这是个问题?@geert3。。对你的回答非常满意。即使有高事务,这些都只是update语句而不是insert语句,每次我只会得到重复的记录,这会改变计数。更新可以很好地更改select/join查询的行计数。例如,情况1:表A有ID为“X”的记录,表B没有此类记录-->不在结果集中。情况2:将B的现有行更新为id“X”-->id为“X”的A/B组合将在结果集中。您需要确保没有任何地方可以更改联接列的值。感谢您的回复。。我查一下上面的内容,然后再打给你