KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > h2 > test > bench > BenchSimple


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.bench;
6
7 import java.sql.PreparedStatement JavaDoc;
8 import java.util.Random JavaDoc;
9
10 public class BenchSimple implements Bench {
11
12     Database db;
13     int records;
14     
15     public void init(Database db, int size) throws Exception JavaDoc {
16         this.db = db;
17         this.records = size * 60;
18         
19         db.start(this, "Init");
20         db.openConnection();
21         db.dropTable("TEST");
22         db.setAutoCommit(false);
23         int commitEvery = 1000;
24         db.update("CREATE TABLE TEST(ID INT NOT NULL PRIMARY KEY, NAME VARCHAR(255))");
25         db.commit();
26         PreparedStatement JavaDoc prep = db.prepare("INSERT INTO TEST VALUES(?, ?)");
27         for(int i=0; i<records; i++) {
28             prep.setInt(1, i);
29             prep.setString(2, "Hello World " + i);
30             db.update(prep);
31             if(i%commitEvery==0) {
32                 db.commit();
33             }
34         }
35         db.commit();
36         db.closeConnection();
37         db.end();
38         
39         db.start(this, "Open/Close");
40         db.openConnection();
41         db.closeConnection();
42         db.end();
43         
44     }
45
46     public void run() throws Exception JavaDoc {
47         PreparedStatement JavaDoc prep;
48         Random JavaDoc random = db.getRandom();
49         
50         db.openConnection();
51         
52         db.start(this, "Query (random)");
53         prep = db.prepare("SELECT * FROM TEST WHERE ID=?");
54         for(int i=0; i<records; i++) {
55             prep.setInt(1, random.nextInt(records));
56             db.queryReadResult(prep);
57         }
58         db.end();
59         
60         db.start(this, "Query (sequential)");
61         prep = db.prepare("SELECT * FROM TEST WHERE ID=?");
62         for(int i=0; i<records; i++) {
63             prep.setInt(1, i);
64             db.queryReadResult(prep);
65         }
66         db.end();
67
68         db.start(this, "Update (random)");
69         prep = db.prepare("UPDATE TEST SET NAME=? WHERE ID=?");
70         for(int i=0; i<records; i++) {
71             prep.setString(1, "Hallo Welt");
72             prep.setInt(2, i);
73             db.update(prep);
74         }
75         db.end();
76
77         db.start(this, "Delete (sequential)");
78         prep = db.prepare("DELETE FROM TEST WHERE ID=?");
79         // delete only 50%
80
for(int i=0; i<records; i+=2) {
81             prep.setInt(1, i);
82             db.update(prep);
83         }
84         db.end();
85         
86         db.closeConnection();
87         
88         db.openConnection();
89         prep = db.prepare("SELECT * FROM TEST WHERE ID=?");
90         for(int i=0; i<records; i++) {
91             prep.setInt(1, random.nextInt(records));
92             db.queryReadResult(prep);
93         }
94         db.logMemory(this, "Memory Usage");
95         db.closeConnection();
96         
97     }
98
99     public String JavaDoc getName() {
100         return "Simple";
101     }
102
103 }
104
Popular Tags