#1232 - Performance: Add support for a second read-only DataSource (for implicit query-only transactions)

This commit is contained in:
Rob Bygrave
2018-01-09 16:35:22 +13:00
parent 01539091ef
commit 932986a6b5
27 changed files with 1128 additions and 100 deletions
@@ -3,15 +3,19 @@ package org.tests.basic;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import io.ebean.Query;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.tests.model.basic.Order;
import org.tests.model.basic.ResetBasicData;
import org.junit.Assert;
import org.junit.Test;
import java.sql.Timestamp;
public class TestQueryWhereBetween extends BaseTestCase {
long statCount;
long statTotal;
@Test
public void testCountOrderBy() {
@@ -27,4 +31,69 @@ public class TestQueryWhereBetween extends BaseTestCase {
String sql = query.getGeneratedSql();
Assert.assertTrue(sql.contains("between t0.cretime and t0.updtime"));
}
@Ignore
@Test
public void doStuff() {
someLoop(3, true);
int loop = 30000;
someLoop(loop, true);
someLoop(loop, true);
someLoop(loop, true);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
someLoop(loop);
long avg = statTotal / statCount;
System.out.println("avg "+avg);
}
private void someLoop(int loop) {
someLoop(loop, false);
}
private void someLoop(int loop, boolean warm) {
long start = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
someQuery();
}
long exe = System.currentTimeMillis() - start;
System.out.println("exe: "+exe);
if (!warm) {
statTotal += exe;
statCount++;
}
}
private void someQuery() {
Timestamp t = new Timestamp(System.currentTimeMillis());
Query<Order> query = Ebean.find(Order.class).setAutoTune(false)
.where()
.le("cretime", t)
.order().asc("orderDate")
.order().desc("id");
query.findList();
}
}