2015-01-06 37 views
2

我正在使用SQL Server 2005.在此表1上有更多的併發訪問。sql瀏覽器和java JDBC中的計數不匹配,由於高事務

當我在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

由於表1上的高交易次數有所不同。

請幫助解決爲什麼計數在java中變化。

注意:Registration_No是主鍵。

在此先感謝。

+0

你說'由於table1上的高交易,計數是變化的.'。這不是回答你的下一個問題'請幫助解決爲什麼計數在java.'中變化? – geert3

+0

@ geert3感謝您的回覆..這是什麼原因造成的,或者wat是限制併發訪問的表格 –

+0

我假設每個記錄計數在計算的時刻都是準確的,並且這是正常的隨着時間的推移。鑑於交易數量很大,在任何時候都可能有所不同。爲什麼這是個問題? – geert3

回答

1

正如您所說由於高交易量,計數有變化。

可能有以下幾種可能性而變化計數:

1)可能有一些交易在後臺發生的事情,你在讀取數據之前。或

2)表中可能有一些重複的數據加入。

3)由於@greet表示可能會改變您加入的其他表的值。

因爲我會要求你正確地檢查查詢。如果你聲稱以上不是可能性。我請求你提供關於表格模式的更多細節。

+0

感謝您的回覆..我會盡快回復你 –

相關問題