when i want to retrieve runtimestatistics from derby the time for a prepared
statement grows more and more due to the constant start execution timestamp.
how can i reset the start execution timestamp of a pStmt without closing and
reopening the pStmt?
its used in a multithreaded Databasestresstest that tries to collect every
executiontime for the statements and log it in another db for later examination.
here is the part of my code that produces this :
public void run()
{
try
{
PreparedStatement s =conn.prepareStatement("SELECT * FROM
TEST.BLABLABLUBBER WHERE " + column + operator +"?");
RTSOn = conn.prepareStatement("CALL
SYSCS_UTIL.SYSCS_SET_RUNTIMESTATISTICS(1)");
RTSOff = conn.prepareStatement("CALL
SYSCS_UTIL.SYSCS_SET_RUNTIMESTATISTICS(0)");
STOn = conn.prepareStatement("CALL
SYSCS_UTIL.SYSCS_SET_STATISTICS_TIMING(1)");
STOff = conn.prepareStatement("CALL
SYSCS_UTIL.SYSCS_SET_STATISTICS_TIMING(0)");
GRTS = conn.prepareStatement("VALUES
SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS()");
while (exit)//exit is a boolean, usually true, set by
observable to false to end the loop
{
RTSOn.execute();
STOn.execute();
s.setString(1, "%"+((char)((new
Random().nextInt(23))+65))+((char)((new Random().nextInt(23))+65))+"%");
//two random chars between a and w
rs = s.executeQuery();
while (rs.next())
{}//while
rs.close();
RTSOff.execute();
STOff.execute();
RTSResult = GRTS.executeQuery();
int i = 1;
while (RTSResult.next())
{
System.out.println(RTSResult.getString(1));
}
RTSResult.close();
}//while
}//try
catch (SQLException sqle)
{
sqle.printStackTrace();
}//catch
}//run
and the corresponding resultset:
Connected to database ddbtest1
Name der Anweisung:
SQL_CURLH000C1
Text der Anweisung:
SELECT * FROM TEST.BLABLABLUBBER WHERE fsinhalt LIKE ?
Zeit für Syntaxanalyse: 0
Bindezeit: 0
Optimierungszeit: 0
Generierungszeit: 0
Kompilierzeit: 0
Ausführungszeit: 22797
Anfangszeitmarke der Kompilierung : null
Endzeitmarke der Kompilierung : null
Anfangszeitmarke der Ausführung : 2008-07-23 14:53:14.296
Endzeitmarke der Ausführung : 2008-07-23 14:53:37.14
Text des Plans für die Anweisungsausführung:
ResultSet für eingeschränkte Projektion (2):
Anzahl der Öffnungsvorgänge = 1
Gesehene Zeilen = 69814
Gefilterte Zeilen = 69814
Einschränkung = true
Projektion = false
Konstruktorzeit (Millisekunden) = 0
Zeit für open (Millisekunden) = 16
Zeit für next (Millisekunden) = 22781
Zeit für close (Millisekunden) = 0
Einschränkungszeit (Millisekunden) = 10369
Projektionszeit (Millisekunden) = 0
Vom Optimizer geschätzte Zeilenzahl: 17094,50
Vom Optimizer geschätzte Kosten: 1564291,54
Quellenergebnisliste:
ResultSet der Tabellensuche für BLABLABLUBBER bei Isolationsstufe READ
COMMITED mit INSTANTANEOUS SHARE ROW-Sperrung wurde vom Optimizer ausgewählt
Anzahl der Öffnungsvorgänge = 1
Gesehene Zeilen = 69814
Gefilterte Zeilen = 0
Abrufgröße = 16
Konstruktorzeit (Millisekunden) = 0
Zeit für open (Millisekunden) = 16
Zeit für next (Millisekunden) = 12397
Zeit für close (Millisekunden) = 47
Zeit für next in Millisekunden/Zeile = 0
Suchinformationen:
Anzahl der abgerufenen Spalten=5
Anzahl der besuchten Seiten=11749
Anzahl der besuchten Zeilen=69814
Anzahl der qualifizierten Zeilen=69814
Bits der abgerufenen Spalten=Alle
Suchtyp=Heap-Speicher
Anfangspunkt:
null Endpunkt:
null Qualifikationsmerkmale:
ID für Spalte [0][0]: 3
Operator: <
Nullsortierung: false
Unbekannter Rückgabewert: true
Vergleichsergebnis negieren: true
ID für Spalte [0][1]: 3
Operator: <
Nullsortierung: false
Unbekannter Rückgabewert: false
Vergleichsergebnis negieren: false
Vom Optimizer geschätzte Zeilenzahl: 17094,50
Vom Optimizer geschätzte Kosten: 1564291,54
Name der Anweisung:
SQL_CURLH000C1
Text der Anweisung:
SELECT * FROM TEST.BLABLABLUBBER WHERE fsinhalt LIKE ?
Zeit für Syntaxanalyse: 0
Bindezeit: 0
Optimierungszeit: 0
Generierungszeit: 0
Kompilierzeit: 0
Ausführungszeit: 45063
Anfangszeitmarke der Kompilierung : null
Endzeitmarke der Kompilierung : null
Anfangszeitmarke der Ausführung : 2008-07-23 14:53:14.296
Endzeitmarke der Ausführung : 2008-07-23 14:53:59.5
Text des Plans für die Anweisungsausführung:
ResultSet für eingeschränkte Projektion (2):
Anzahl der Öffnungsvorgänge = 2
Gesehene Zeilen = 139628
Gefilterte Zeilen = 139628
Einschränkung = true
Projektion = false
Konstruktorzeit (Millisekunden) = 0
Zeit für open (Millisekunden) = 16
Zeit für next (Millisekunden) = 44969
Zeit für close (Millisekunden) = 78
Einschränkungszeit (Millisekunden) = 20784
Projektionszeit (Millisekunden) = 0
Vom Optimizer geschätzte Zeilenzahl: 17094,50
Vom Optimizer geschätzte Kosten: 1564291,54
Quellenergebnisliste:
ResultSet der Tabellensuche für BLABLABLUBBER bei Isolationsstufe READ
COMMITED mit INSTANTANEOUS SHARE ROW-Sperrung wurde vom Optimizer ausgewählt
Anzahl der Öffnungsvorgänge = 2
Gesehene Zeilen = 139628
Gefilterte Zeilen = 0
Abrufgröße = 16
Konstruktorzeit (Millisekunden) = 0
Zeit für open (Millisekunden) = 235
Zeit für next (Millisekunden) = 24138
Zeit für close (Millisekunden) = 47
Zeit für next in Millisekunden/Zeile = 0
Suchinformationen:
Anzahl der abgerufenen Spalten=5
Anzahl der besuchten Seiten=11749
Anzahl der besuchten Zeilen=69814
Anzahl der qualifizierten Zeilen=69814
Bits der abgerufenen Spalten=Alle
Suchtyp=Heap-Speicher
Anfangspunkt:
null Endpunkt:
null Qualifikationsmerkmale:
ID für Spalte [0][0]: 3
Operator: <
Nullsortierung: false
Unbekannter Rückgabewert: true
Vergleichsergebnis negieren: true
ID für Spalte [0][1]: 3
Operator: <
Nullsortierung: false
Unbekannter Rückgabewert: false
Vergleichsergebnis negieren: false
Vom Optimizer geschätzte Zeilenzahl: 17094,50
Vom Optimizer geschätzte Kosten: 1564291,54
Name der Anweisung:
SQL_CURLH000C1
Text der Anweisung:
SELECT * FROM TEST.BLABLABLUBBER WHERE fsinhalt LIKE ?
Zeit für Syntaxanalyse: 0
Bindezeit: 0
Optimierungszeit: 0
Generierungszeit: 0
Kompilierzeit: 0
Ausführungszeit: 68066
Anfangszeitmarke der Kompilierung : null
Endzeitmarke der Kompilierung : null
Anfangszeitmarke der Ausführung : 2008-07-23 14:53:14.296
Endzeitmarke der Ausführung : 2008-07-23 14:54:26.562
Text des Plans für die Anweisungsausführung:
ResultSet für eingeschränkte Projektion (2):
Anzahl der Öffnungsvorgänge = 3
Gesehene Zeilen = 209442
Gefilterte Zeilen = 198446
Einschränkung = true
Projektion = false
Konstruktorzeit (Millisekunden) = 0
Zeit für open (Millisekunden) = 16
Zeit für next (Millisekunden) = 67972
Zeit für close (Millisekunden) = 78
Einschränkungszeit (Millisekunden) = 30623
Projektionszeit (Millisekunden) = 0
Vom Optimizer geschätzte Zeilenzahl: 17094,50
Vom Optimizer geschätzte Kosten: 1564291,54
Quellenergebnisliste:
ResultSet der Tabellensuche für BLABLABLUBBER bei Isolationsstufe READ
COMMITED mit INSTANTANEOUS SHARE ROW-Sperrung wurde vom Optimizer ausgewählt
Anzahl der Öffnungsvorgänge = 3
Gesehene Zeilen = 209442
Gefilterte Zeilen = 0
Abrufgröße = 16
Konstruktorzeit (Millisekunden) = 0
Zeit für open (Millisekunden) = 250
Zeit für next (Millisekunden) = 37240
Zeit für close (Millisekunden) = 47
Zeit für next in Millisekunden/Zeile = 0
Suchinformationen:
Anzahl der abgerufenen Spalten=5
Anzahl der besuchten Seiten=11749
Anzahl der besuchten Zeilen=69814
Anzahl der qualifizierten Zeilen=69814
Bits der abgerufenen Spalten=Alle
Suchtyp=Heap-Speicher
Anfangspunkt:
null Endpunkt:
null Qualifikationsmerkmale:
ID für Spalte [0][0]: 3
Operator: <
Nullsortierung: false
Unbekannter Rückgabewert: true
Vergleichsergebnis negieren: true
ID für Spalte [0][1]: 3
Operator: <
Nullsortierung: false
Unbekannter Rückgabewert: false
Vergleichsergebnis negieren: false
Vom Optimizer geschätzte Zeilenzahl: 17094,50
Vom Optimizer geschätzte Kosten: 1564291,54
as you see the start execution timestamp (Anfangszeitmarke der Ausführung :
2008-07-23 14:53:14.296) remains constant and the execution time is wrong cause
its the whole time since creating the pStmt (or first execution??) i haven`t
found anything that explains how to reset this time without resetting the
statement or connection.
--
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer