package de.memtext.db; import java.sql.Connection; import java.sql.Statement; import de.memtext.util.TimeUtils; public class DBTimer { private static int runCount = 200; private static boolean logEachRun = false; //private static String driver="org.hsqldb.jdbcDriver"; private static String driver = "com.informix.jdbc.IfxDriver"; //private static String url="jdbc:hsqldb:hsql://localhost:9001"; private static String url = "jdbc:informix-sqli://jupiter:50000:informixserver=superx_host;database=superx"; private static String user = "superx"; private static String passwd = "anfang12"; private static String sql = "execute procedure sp_cob_keychild('1',0);"; //wenn ein zweiter Sql folgen soll - drop table tmp_xx muss z.B. in eigenem Aufruf sein. private static String sql2 = null;//"select sum(betrag) from cob_busa,tmp_children T where fikrkey=T.key"; //"select sum(betrag) from cob_busa where fikrkey in (select key from tmp_children)"; private static String sql3 = null;//"drop table tmp_children;"; public static void main(String[] args) { //sql="select sum(betrag) from cob_busa C, tmp_children T where fikrkey=T.key and T.parent='1'"; sql = "select sum(betrag) from cob_busa where fikrkey in ('1', \n" + " '11 ', \n" + " '111 ', \n" + " '1111 ', \n" + " '1112 ', \n" + " '112 ', \n" + " '1121 ', \n" + " '1122 ', \n" + " '113 ', \n" + " '1131 ', \n" + " '1132 ', \n" + " '12 ', \n" + " '121 ', \n" + " '1211 ', \n" + " '1212 ', \n" + " '1213 ', \n" + " '122 ', \n" + " '123 ', \n" + " '124 ', \n" + " '125 ', \n" + " '126 ', \n" + " '13 ', \n" + " '131 ', \n" + " '1311 ', \n" + " '1312 ', \n" + " '1313 ', \n" + " '132 ', \n" + " '1321 ', \n" + " '1322 ', \n" + " '1323 ', \n" + " '133 ', \n" + " '1331 ', \n" + " '1332 ', \n" + " '1333 ', \n" + " '1334 ', \n" + " '134 ', \n" + " '135 ', \n" + " '136 ', \n" + " '137 ', \n" + " '138 ')"; try { Class.forName(driver); Connection conn = java.sql.DriverManager.getConnection(url, user, passwd); Statement stmt = conn.createStatement(); TimeUtils t = new TimeUtils(); System.out.println("start " + sql); for (int i = 1; i <= runCount; i++) { if (logEachRun) System.out.println(i); stmt.execute(sql); if (sql2 != null) stmt.execute(sql2); if (sql3 != null) stmt.execute(sql3); } t.print(runCount + " times"); stmt.close(); conn.close(); System.out.println("done"); } catch (Exception e) { e.printStackTrace(); System.exit(-1); } } } //Created on 09.03.2005 at 10:05:37