| 1 5 package org.h2.test.bench; 6 7 import java.sql.PreparedStatement ; 8 import java.util.Random ; 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 { 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 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 { 47 PreparedStatement prep; 48 Random 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 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 getName() { 100 return "Simple"; 101 } 102 103 } 104 | Popular Tags |