由于高事务,sql 浏览器和 java JDBC 中的计数不匹配
Count mismatch in sql browser and java JDBC, due to high transaction
我正在使用 SQL Server 2005。在此 table1 上有更多的并发访问。
当我在 SQL 浏览器中执行以下查询时,我得到了 2000 条记录,但是当使用 java 执行相同的查询时,没有记录 r 变化。
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
是主键。
提前致谢。
正如您所说,由于交易量大,计数存在差异。
可能有以下不同的可能性:
1) 在您读取数据之前,后台可能发生了一些事务。或者
2) 您加入的table中可能存在重复数据
3) 正如 @greet 所说,您加入的其他 table 的值可能会发生变化。
正如我要求您正确检查查询一样。如果您声称以上不是可能性。我请求您提供有关 table 架构的更多详细信息。
我正在使用 SQL Server 2005。在此 table1 上有更多的并发访问。
当我在 SQL 浏览器中执行以下查询时,我得到了 2000 条记录,但是当使用 java 执行相同的查询时,没有记录 r 变化。
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
是主键。
提前致谢。
正如您所说,由于交易量大,计数存在差异。
可能有以下不同的可能性:
1) 在您读取数据之前,后台可能发生了一些事务。或者
2) 您加入的table中可能存在重复数据
3) 正如 @greet 所说,您加入的其他 table 的值可能会发生变化。
正如我要求您正确检查查询一样。如果您声称以上不是可能性。我请求您提供有关 table 架构的更多详细信息。