我想執行一個select查詢,並能夠得到結果的計數,而不像「TOAD」那樣使用「COUNT(*)」。這個概念是給用戶輸入他想要的任何「選擇查詢」的選項,併爲他計算結果的數量。爲什麼TOAD比我的java代碼更快?
try {
selectStatement = globalConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet selectResultSet = selectStatement.executeQuery(selectStatementString);
selectResultSet.last();
int countOfResults = selectResultSet.getRow();
writeInLabel(kllStatusLabel, "Count Finished: Found " + countOfResults + " Inserts");
} catch (SQLException ex) {
writeInLabel(kllStatusLabel, "Error executing select query.");
}
此代碼延遲很多行:「selectResultSet.last();」。 TOAD可以延遲很少。 (右鍵單擊 - >記錄計數)。 即使我在TOAD中一直向下滾動結果表,它的速度也會更快。
TOAD如何獲得記錄數?
好的我知道了,我將使用count(*)並且有第二個ResultSet來顯示我的結果。
ResultSet selectResultSet = selectStatement.executeQuery("select count(*) from (" + selectStatementString + ")");
int countOfResults = 0;
if (selectResultSet.next()){
countOfResults = selectResultSet.getInt(1);
}
您是否認爲TOAD可以進行順序選擇,即獲取前500條記錄並顯示它們,而您可以瀏覽它,它仍在尋找更多數據?換句話說,你是否認爲TOAD是多線程的,除非另有說明,否則在代碼中看不到多線程? – 2010-12-20 12:21:20
我不是在談論結果,只是計數結果。這就是我想說的。即使簡單的記錄計數在TOAD中也很快。對不起,我沒有給我所有的代碼。我在我的代碼中使用線程。 – 2010-12-20 12:46:09