KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > h2 > test > db > TestMemoryUsage


1 /*
2  * Copyright 2004-2006 H2 Group. Licensed under the H2 License, Version 1.0 (http://h2database.com/html/license.html).
3  * Initial Developer: H2 Group
4  */

5 package org.h2.test.db;
6
7 import java.sql.Connection JavaDoc;
8 import java.sql.PreparedStatement JavaDoc;
9 import java.sql.ResultSet JavaDoc;
10 import java.sql.Statement JavaDoc;
11 import java.util.Random JavaDoc;
12
13 import org.h2.test.TestBase;
14
15 public class TestMemoryUsage extends TestBase {
16
17     private Connection JavaDoc conn;
18     
19     private void reconnect() throws Exception JavaDoc {
20         if(conn != null) {
21             conn.close();
22         }
23 // Class.forName("org.hsqldb.jdbcDriver");
24
// conn = DriverManager.getConnection("jdbc:hsqldb:test", "sa", "");
25
conn = getConnection("memoryUsage");
26     }
27     
28     public void test() throws Exception JavaDoc {
29         deleteDb("memoryUsage");
30         reconnect();
31         insertUpdateSelectDelete();
32         reconnect();
33         insertUpdateSelectDelete();
34         conn.close();
35     }
36     
37     void insertUpdateSelectDelete() throws Exception JavaDoc {
38         Statement JavaDoc stat = conn.createStatement();
39         long time;
40         int len = getSize(1, 2000);
41         
42         // insert
43
time = System.currentTimeMillis();
44         stat.execute("DROP TABLE IF EXISTS TEST");
45         trace("drop=" + (System.currentTimeMillis()-time));
46         stat.execute("CREATE CACHED TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255))");
47         PreparedStatement JavaDoc prep = conn.prepareStatement("INSERT INTO TEST VALUES(?, 'Hello World')");
48         printTimeMemory("start", 0);
49         time = System.currentTimeMillis();
50         for(int i=0; i<len; i++) {
51             prep.setInt(1, i);
52             prep.execute();
53             if(i % 50000 == 0) {
54                 trace(" " + (100*i/len) + "%");
55             }
56         }
57         printTimeMemory("insert", System.currentTimeMillis()-time);
58         
59         // update
60
time = System.currentTimeMillis();
61         prep = conn.prepareStatement("UPDATE TEST SET NAME='Hallo Welt' WHERE ID = ?");
62         for(int i=0; i<len; i++) {
63             prep.setInt(1, i);
64             prep.execute();
65             if(i % 50000 == 0) {
66                 trace(" " + (100*i/len) + "%");
67             }
68         }
69         printTimeMemory("update", System.currentTimeMillis()-time);
70
71         // select
72
time = System.currentTimeMillis();
73         prep = conn.prepareStatement("SELECT * FROM TEST WHERE ID = ?");
74         for(int i=0; i<len; i++) {
75             prep.setInt(1, i);
76            ResultSet JavaDoc rs = prep.executeQuery();
77            rs.next();
78            if(rs.next()) {
79                error("one row expected, got more");
80            }
81             if(i % 50000 == 0) {
82                 trace(" " + (100*i/len) + "%");
83             }
84         }
85         printTimeMemory("select", System.currentTimeMillis()-time);
86
87         // select randomized
88
Random JavaDoc random = new Random JavaDoc(1);
89         time = System.currentTimeMillis();
90         prep = conn.prepareStatement("SELECT * FROM TEST WHERE ID = ?");
91         for(int i=0; i<len; i++) {
92             prep.setInt(1, random.nextInt(len));
93             ResultSet JavaDoc rs = prep.executeQuery();
94             rs.next();
95             if(rs.next()) {
96                 error("one row expected, got more");
97             }
98             if(i % 50000 == 0) {
99                 trace(" " + (100*i/len) + "%");
100             }
101         }
102         printTimeMemory("select randomized", System.currentTimeMillis()-time);
103
104         // delete
105
time = System.currentTimeMillis();
106         prep = conn.prepareStatement("DELETE FROM TEST WHERE ID = ?");
107         for(int i=0; i<len; i++) {
108             prep.setInt(1, random.nextInt(len));
109             prep.executeUpdate();
110             if(i % 50000 == 0) {
111                 trace(" " + (100*i/len) + "%");
112             }
113         }
114         printTimeMemory("delete", System.currentTimeMillis()-time);
115     }
116
117
118 }
119
Popular Tags