19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 170dc59e78e18493aecd37427531d093e800846c3eBrett Chabotpackage android.database; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ContentValues; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.sqlite.SQLiteDatabase; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.PerformanceTestCase; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport junit.framework.TestCase; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.File; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Random; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Database Performance Tests 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class NewDatabasePerformanceTests { 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 353f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown // Edit this to change the test run times. The original is 100. 363f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown final static int kMultiplier = 1; 373f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 383f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class PerformanceBase extends TestCase 393f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown implements PerformanceTestCase { 403f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown protected static final int CURRENT_DATABASE_VERSION = 42; 413f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown protected SQLiteDatabase mDatabase; 423f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown protected File mDatabaseFile; 433f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 443f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 453f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabaseFile = new File("/sdcard", "perf_database_test.db"); 463f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown if (mDatabaseFile.exists()) { 473f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabaseFile.delete(); 483f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 493f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase = 503f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown SQLiteDatabase.openOrCreateDatabase(mDatabaseFile.getPath(), 513f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown null); 523f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown assertTrue(mDatabase != null); 533f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.setVersion(CURRENT_DATABASE_VERSION); 543f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 553f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 563f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void tearDown() { 573f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.close(); 583f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabaseFile.delete(); 593f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 603f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 613f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public boolean isPerformanceOnly() { 623f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown return true; 633f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 643f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 653f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown // These tests can only be run once. 663f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public int startPerformance(Intermediates intermediates) { 673f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown return 0; 683f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 693f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 703f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public String numberName(int number) { 713f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown String result = ""; 723f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 733f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown if (number >= 1000) { 743f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown result += numberName((number / 1000)) + " thousand"; 753f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown number = (number % 1000); 763f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 773f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown if (number > 0) result += " "; 783f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 793f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 803f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown if (number >= 100) { 813f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown result += ONES[(number / 100)] + " hundred"; 823f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown number = (number % 100); 833f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 843f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown if (number > 0) result += " "; 853f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 863f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 873f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown if (number >= 20) { 883f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown result += TENS[(number / 10)]; 893f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown number = (number % 10); 903f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 913f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown if (number > 0) result += " "; 923f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 933f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 943f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown if (number > 0) { 953f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown result += ONES[number]; 963f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 973f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 983f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown return result; 993f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1023f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 1033f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * Test 1000 inserts. 1043f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1063f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class Insert1000 extends PerformanceBase { 1073f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 10 * kMultiplier; 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1093f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] statements = new String[SIZE]; 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1113f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 1123f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 1133f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 1143f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1163f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 1173f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 1183f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown statements[i] = 1193f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown "INSERT INTO t1 VALUES(" + i + "," + r + ",'" 1203f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"; 1213f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1233f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 1243f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 1253f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1273f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 1283f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 1293f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL(statements[i]); 1303f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 1313f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1343f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 1353f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * Test 1000 inserts into an indexed table. 1363f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 1373f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 1383f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class InsertIndexed1000 extends PerformanceBase { 1393f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 10 * kMultiplier; 1403f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 1413f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] statements = new String[SIZE]; 1423f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 1433f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 1443f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 1453f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 1463f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 1473f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 1483f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 1493f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 1503f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown statements[i] = 1513f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown "INSERT INTO t1 VALUES(" + i + "," + r + ",'" 1523f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"; 1533f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 1543f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 1553f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 1563f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 1573f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i1c ON t1(c)"); 1583f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 1593f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 1603f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 1613f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 1623f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL(statements[i]); 1633f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 1643f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1673f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 1683f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 100 SELECTs without an index 1693f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 1703f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 1713f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class Select100 extends PerformanceBase { 1723f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 1 * kMultiplier; 1733f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"count(*)", "avg(b)"}; 1743f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 1753f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 1763f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 1773f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 1783f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 1793f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 1803f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 1813f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 1823f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 1833f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 1843f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 1853f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 1863f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 1873f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 1883f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 1893f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 1903f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 1913f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 1923f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int lower = i * 100; 1933f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int upper = (i + 10) * 100; 1943f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "b >= " + lower + " AND b < " + upper; 1953f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 1963f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 1973f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 1983f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 1993f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 2003f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 2013f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .query("t1", COLUMNS, where[i], null, null, null, null); 2023f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 2033f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2063f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 2073f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 100 SELECTs on a string comparison 2083f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 2093f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2103f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectStringComparison100 extends PerformanceBase { 2113f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 1 * kMultiplier; 2123f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"count(*)", "avg(b)"}; 2133f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2143f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 2153f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2163f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 2173f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 2183f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 2193f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 2203f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2213f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 2223f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 2233f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2243f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 2253f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 2263f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 2273f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 2283f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 2293f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2303f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 2313f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "c LIKE '" + numberName(i) + "'"; 2323f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 2333f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 2343f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2353f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 2363f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 2373f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 2383f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .query("t1", COLUMNS, where[i], null, null, null, null); 2393f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 2403f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2433f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 2443f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 100 SELECTs with an index 2453f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 2463f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2473f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectIndex100 extends PerformanceBase { 2483f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 1 * kMultiplier; 2493f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"count(*)", "avg(b)"}; 2503f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2513f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 2523f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2533f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 2543f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 2553f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 2563f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 2573f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2583f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 2593f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 2603f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i1b ON t1(b)"); 2613f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2623f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 2633f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 2643f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 2653f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 2663f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 2673f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2683f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 2693f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int lower = i * 100; 2703f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int upper = (i + 10) * 100; 2713f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "b >= " + lower + " AND b < " + upper; 2723f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 2733f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 2743f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2753f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 2763f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 2773f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 2783f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .query("t1", COLUMNS, where[i], null, null, null, null); 2793f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 2803f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2833f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 2843f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * INNER JOIN without an index 2853f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 2863f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2873f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class InnerJoin100 extends PerformanceBase { 2883f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 1 * kMultiplier; 2893f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"t1.a"}; 2903f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2913f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 2923f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 2933f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 2943f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 2953f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 2963f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 2973f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 2983f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 2993f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100))"); 3003f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3013f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 3023f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 3033f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 3043f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 3053f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 3063f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3073f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 3083f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 3093f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t2 VALUES(" + i + "," + r + ",'" 3103f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 3113f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 3123f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 3133f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3143f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 3153f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.query("t1 INNER JOIN t2 ON t1.b = t2.b", COLUMNS, null, 3163f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown null, null, null, null); 3173f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3203f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 3213f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * INNER JOIN without an index on one side 3223f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 3233f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3243f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class InnerJoinOneSide100 extends PerformanceBase { 3253f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 1 * kMultiplier; 3263f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"t1.a"}; 3273f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3283f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 3293f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 3303f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 3313f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 3323f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3333f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 3343f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 3353f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 3363f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100))"); 3373f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3383f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i1b ON t1(b)"); 3393f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3403f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 3413f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 3423f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 3433f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 3443f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 3453f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3463f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 3473f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 3483f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t2 VALUES(" + i + "," + r + ",'" 3493f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 3503f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 3513f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 3523f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3533f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 3543f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.query("t1 INNER JOIN t2 ON t1.b = t2.b", COLUMNS, null, 3553f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown null, null, null, null); 3563f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3593f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 3603f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * INNER JOIN without an index on one side 3613f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 3623f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3633f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class InnerJoinNoIndex100 extends PerformanceBase { 3643f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 1 * kMultiplier; 3653f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"t1.a"}; 3663f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3673f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 3683f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 3693f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 3703f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 3713f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3723f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 3733f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 3743f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 3753f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100))"); 3763f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3773f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i1b ON t1(b)"); 3783f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3793f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 3803f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 3813f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 3823f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 3833f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 3843f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3853f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 3863f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 3873f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t2 VALUES(" + i + "," + r + ",'" 3883f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 3893f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 3903f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 3913f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 3923f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 3933f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.query("t1 INNER JOIN t2 ON t1.c = t2.c", COLUMNS, null, 3943f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown null, null, null, null); 3953f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3983f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 3993f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 100 SELECTs with subqueries. Subquery is using an index 4003f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 4013f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4023f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectSubQIndex100 extends PerformanceBase { 4033f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 1 * kMultiplier; 4043f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"t1.a"}; 4053f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4063f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 4073f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4083f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 4093f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 4103f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 4113f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 4123f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4133f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 4143f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 4153f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 4163f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100))"); 4173f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4183f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i2b ON t2(b)"); 4193f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4203f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 4213f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 4223f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 4233f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 4243f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 4253f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4263f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 4273f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 4283f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t2 VALUES(" + i + "," + r + ",'" 4293f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 4303f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 4313f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4323f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 4333f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int lower = i * 100; 4343f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int upper = (i + 10) * 100; 4353f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = 4363f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown "t1.b IN (SELECT t2.b FROM t2 WHERE t2.b >= " + lower 4373f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + " AND t2.b < " + upper + ")"; 4383f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 4393f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 4403f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4413f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 4423f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 4433f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 4443f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .query("t1", COLUMNS, where[i], null, null, null, null); 4453f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 4463f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4493f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 4503f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 100 SELECTs on string comparison with Index 4513f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 4523f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4533f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectIndexStringComparison100 extends PerformanceBase { 4543f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 1 * kMultiplier; 4553f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"count(*)", "avg(b)"}; 4563f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4573f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 4583f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4593f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 4603f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 4613f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 4623f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 4633f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4643f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 4653f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 4663f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i3c ON t1(c)"); 4673f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4683f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 4693f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 4703f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 4713f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 4723f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 4733f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4743f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 4753f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "c LIKE '" + numberName(i) + "'"; 4763f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 4773f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 4783f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 4793f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 4803f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 4813f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 4823f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .query("t1", COLUMNS, where[i], null, null, null, null); 4833f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 4843f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4873f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 4883f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 100 SELECTs on integer 4893f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4913f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectInteger100 extends PerformanceBase { 4923f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 1 * kMultiplier; 4933f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"b"}; 4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4953f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 4963f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 4973f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 4983f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5003f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 5013f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5033f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 5043f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 5053f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 5063f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 5073f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5093f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5113f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 5123f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 5133f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.query("t1", COLUMNS, null, null, null, null, null); 5143f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 5153f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5183f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 5193f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 100 SELECTs on String 5203f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5223f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectString100 extends PerformanceBase { 5233f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 1 * kMultiplier; 5243f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"c"}; 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5263f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 5273f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 5283f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 5293f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5313f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 5323f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5343f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 5353f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 5363f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 5373f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 5383f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5403f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5423f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 5433f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 5443f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.query("t1", COLUMNS, null, null, null, null, null); 5453f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 5463f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5493f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 5503f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 100 SELECTs on integer with index 5513f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5533f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectIntegerIndex100 extends PerformanceBase { 5543f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 1 * kMultiplier; 5553f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"b"}; 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5573f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 5583f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 5593f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 5603f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5623f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 5633f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 5643f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i1b on t1(b)"); 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5663f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 5673f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 5683f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 5693f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 5703f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5723f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5743f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 5753f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 5763f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.query("t1", COLUMNS, null, null, null, null, null); 5773f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 5783f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5813f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 5823f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 100 SELECTs on String with index 5833f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5853f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectIndexString100 extends PerformanceBase { 5863f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 1 * kMultiplier; 5873f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"c"}; 5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5893f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 5903f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 5913f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 5923f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5943f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 5953f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 5963f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i1c ON t1(c)"); 5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5983f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 5993f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 6003f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 6013f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 6023f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6043f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6063f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 6073f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 6083f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.query("t1", COLUMNS, null, null, null, null, null); 6093f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6103f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6133f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 6143f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 100 SELECTs on String with starts with 6153f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6173f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectStringStartsWith100 extends PerformanceBase { 6183f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 1 * kMultiplier; 6193f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"c"}; 6203f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6223f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 6233f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 6243f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 6253f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6273f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 6283f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 6293f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i1c ON t1(c)"); 6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6313f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 6323f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 6333f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 6343f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 6353f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6373f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 6383f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 6393f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "c LIKE '" + numberName(r).substring(0, 1) + "*'"; 6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6413f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6433f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6453f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 6463f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 6473f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 6483f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .query("t1", COLUMNS, where[i], null, null, null, null); 6493f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6503f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6513f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6533f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 6543f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 1000 Deletes on an indexed table 6553f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6573f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class DeleteIndexed1000 extends PerformanceBase { 6583f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 10 * kMultiplier; 6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6603f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 6613f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 6623f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 6633f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6653f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 6663f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 6673f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i3c ON t1(c)"); 6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6693f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 6703f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 6713f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 6723f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 6733f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6753f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6773f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 6783f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 6793f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.delete("t1", null, null); 6803f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6813f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6843f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 6853f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 1000 Deletes 6863f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6883f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class Delete1000 extends PerformanceBase { 6893f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 10 * kMultiplier; 6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6913f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 6923f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 6933f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 6943f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6963f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 6973f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6993f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 7003f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 7013f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 7023f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 7033f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7053f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7073f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 7083f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 7093f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.delete("t1", null, null); 7103f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7113f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7143f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 7153f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 1000 DELETE's without an index with where clause 7163f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 7173f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7183f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class DeleteWhere1000 extends PerformanceBase { 7193f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 10 * kMultiplier; 7203f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 7213f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7223f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 7233f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 7243f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 7253f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 7263f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7273f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 7283f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 7293f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7303f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 7313f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 7323f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 7333f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 7343f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7353f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7363f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 7373f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int lower = i * 100; 7383f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int upper = (i + 10) * 100; 7393f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "b >= " + lower + " AND b < " + upper; 7403f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7413f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7423f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7433f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 7443f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 7453f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.delete("t1", where[i], null); 7463f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7473f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7503f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 7513f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 1000 DELETE's with an index with where clause 7523f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 7533f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7543f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class DeleteIndexWhere1000 extends PerformanceBase { 7553f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 10 * kMultiplier; 7563f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 7573f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7583f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 7593f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 7603f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 7613f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 7623f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7633f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 7643f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 7653f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i1b ON t1(b)"); 7663f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7673f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 7683f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 7693f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 7703f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 7713f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7723f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7733f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 7743f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int lower = i * 100; 7753f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int upper = (i + 10) * 100; 7763f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "b >= " + lower + " AND b < " + upper; 7773f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7783f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7793f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7803f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 7813f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 7823f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.delete("t1", where[i], null); 7833f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7843f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7873f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 7883f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 1000 update's with an index with where clause 7893f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 7903f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7913f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class UpdateIndexWhere1000 extends PerformanceBase { 7923f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 10 * kMultiplier; 7933f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 7943f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown ContentValues[] mValues = new ContentValues[SIZE]; 7953f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 7963f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 7973f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 7983f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 7993f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 8003f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8013f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 8023f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 8033f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i1b ON t1(b)"); 8043f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8053f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 8063f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 8073f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 8083f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 8093f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 8103f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8113f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 8123f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8133f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int lower = i * 100; 8143f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int upper = (i + 10) * 100; 8153f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "b >= " + lower + " AND b < " + upper; 8163f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown ContentValues b = new ContentValues(1); 8173f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown b.put("b", upper); 8183f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mValues[i] = b; 8193f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8203f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 8213f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 8223f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8233f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 8243f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 8253f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.update("t1", mValues[i], where[i], null); 8263f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 8273f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8303f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 8313f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 1000 update's without an index with where clause 8323f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 8333f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8343f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class UpdateWhere1000 extends PerformanceBase { 8353f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 10 * kMultiplier; 8363f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 8373f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown ContentValues[] mValues = new ContentValues[SIZE]; 8383f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8393f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 8403f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 8413f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 8423f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 8433f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8443f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 8453f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 8463f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8473f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 8483f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 8493f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 8503f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 8513f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 8523f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8533f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 8543f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8553f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int lower = i * 100; 8563f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int upper = (i + 10) * 100; 8573f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "b >= " + lower + " AND b < " + upper; 8583f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown ContentValues b = new ContentValues(1); 8593f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown b.put("b", upper); 8603f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mValues[i] = b; 8613f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 8623f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 8633f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8643f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 8653f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 8663f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.update("t1", mValues[i], where[i], null); 8673f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 8683f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8713f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 8723f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 10000 inserts for an integer 8733f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 8743f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8753f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class InsertInteger10000 extends PerformanceBase { 8763f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 100 * kMultiplier; 8773f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown ContentValues[] mValues = new ContentValues[SIZE]; 8783f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8793f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 8803f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 8813f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 8823f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 8833f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8843f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 8853f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER)"); 8863f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8873f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 8883f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 8893f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown ContentValues b = new ContentValues(1); 8903f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown b.put("a", r); 8913f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mValues[i] = b; 8923f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 8933f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 8943f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 8953f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 8963f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 8973f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.insert("t1", null, mValues[i]); 8983f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 8993f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9023f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 9033f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 10000 inserts for an integer -indexed table 9043f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 9053f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9063f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class InsertIntegerIndex10000 extends PerformanceBase { 9073f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 100 * kMultiplier; 9083f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown ContentValues[] mValues = new ContentValues[SIZE]; 9093f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9103f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 9113f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 9123f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 9133f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 9143f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9153f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 9163f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a INTEGER)"); 9173f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i1a ON t1(a)"); 9183f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9193f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 9203f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 9213f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown ContentValues b = new ContentValues(1); 9223f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown b.put("a", r); 9233f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mValues[i] = b; 9243f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 9253f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 9263f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9273f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 9283f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 9293f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.insert("t1", null, mValues[i]); 9303f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 9313f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9343f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 9353f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 10000 inserts for a String 9363f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 9373f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9383f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class InsertString10000 extends PerformanceBase { 9393f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 100 * kMultiplier; 9403f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown ContentValues[] mValues = new ContentValues[SIZE]; 9413f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9423f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 9433f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 9443f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 9453f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 9463f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9473f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 9483f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a VARCHAR(100))"); 9493f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9503f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 9513f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 9523f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown ContentValues b = new ContentValues(1); 9533f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown b.put("a", numberName(r)); 9543f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mValues[i] = b; 9553f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 9563f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 9573f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9583f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 9593f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 9603f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.insert("t1", null, mValues[i]); 9613f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 9623f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9653f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 9663f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 10000 inserts for a String - indexed table 9673f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 9683f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9693f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class InsertStringIndexed10000 extends PerformanceBase { 9703f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 100 * kMultiplier; 9713f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown ContentValues[] mValues = new ContentValues[SIZE]; 9723f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9733f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 9743f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 9753f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 9763f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 9773f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9783f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 9793f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t1(a VARCHAR(100))"); 9803f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i1a ON t1(a)"); 9813f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9823f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 9833f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 9843f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown ContentValues b = new ContentValues(1); 9853f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown b.put("a", numberName(r)); 9863f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mValues[i] = b; 9873f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 9883f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 9893f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 9903f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 9913f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 9923f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.insert("t1", null, mValues[i]); 9933f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 9943f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9983f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 9993f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 10000 selects for a String -starts with 10003f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10023f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectStringStartsWith10000 extends PerformanceBase { 10033f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 100 * kMultiplier; 10043f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"t3.a"}; 10053f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10073f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 10083f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 10093f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 10103f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10123f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 10133f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t3(a VARCHAR(100))"); 10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10153f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 10163f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 10173f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t3 VALUES('" 10183f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 10193f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10213f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 10223f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 10233f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "a LIKE '" + numberName(r).substring(0, 1) + "*'"; 10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10253f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 10263f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10283f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 10293f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 10303f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.query("t3", COLUMNS, where[i], null, null, null, null); 10313f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 10323f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10343f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 10353f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 10363f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 10000 selects for a String - indexed table -starts with 10373f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 10383f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 10393f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectStringIndexedStartsWith10000 extends 10403f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown PerformanceBase { 10413f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 100 * kMultiplier; 10423f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"t3.a"}; 10433f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 10443f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 10453f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 10463f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 10473f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 10483f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 10493f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 10503f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 10513f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t3(a VARCHAR(100))"); 10523f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i3a ON t3(a)"); 10533f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 10543f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 10553f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 10563f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t3 VALUES('" 10573f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 10583f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 10593f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 10603f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 10613f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 10623f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "a LIKE '" + numberName(r).substring(0, 1) + "*'"; 10633f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 10643f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 10653f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 10663f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 10673f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 10683f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 10693f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.query("t3", COLUMNS, where[i], null, null, null, null); 10703f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 10713f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10733f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 10743f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 10753f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 10000 selects for an integer - 10763f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 10773f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 10783f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectInteger10000 extends PerformanceBase { 10793f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 100 * kMultiplier; 10803f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"t4.a"}; 10813f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 10823f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 10833f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 10843f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 10853f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 10863f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 10873f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 10883f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 10893f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t4(a INTEGER)"); 10903f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 10913f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 10923f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 10933f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t4 VALUES(" + r + ")"); 10943f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int lower = i * 100; 10953f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int upper = (i + 10) * 100; 10963f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "a >= " + lower + " AND a < " + upper; 10973f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 10983f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 10993f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 11003f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 11013f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 11023f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.query("t4", COLUMNS, where[i], null, null, null, null); 11033f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 11043f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11073f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 11083f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 10000 selects for an integer -indexed table 11093f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11113f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectIntegerIndexed10000 extends PerformanceBase { 11123f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 100 * kMultiplier; 11133f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"t4.a"}; 11143f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11163f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 11173f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 11183f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 11193f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11213f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 11223f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t4(a INTEGER)"); 11233f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i4a ON t4(a)"); 11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11253f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 11263f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 11273f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t4 VALUES(" + r + ")"); 11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11293f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int lower = i * 100; 11303f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int upper = (i + 10) * 100; 11313f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "a >= " + lower + " AND a < " + upper; 11323f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11343f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 11359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11363f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 11373f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 11383f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.query("t4", COLUMNS, where[i], null, null, null, null); 11393f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 11403f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 11419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11443f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 11453f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 10000 selects for a String - contains 'e' 11463f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 11479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11483f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectStringContains10000 extends PerformanceBase { 11493f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 100 * kMultiplier; 11503f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"t3.a"}; 11513f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 11529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11533f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 11543f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 11553f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 11563f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 11579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11583f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 11593f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t3(a VARCHAR(100))"); 11609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11613f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 11623f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 11633f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t3 VALUES('" 11643f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 11653f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11673f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 11683f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "a LIKE '*e*'"; 11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11703f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 11713f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11733f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 11743f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 11753f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.query("t3", COLUMNS, where[i], null, null, null, null); 11763f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 11773f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11793f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 11803f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown /** 11813f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown * 10000 selects for a String - contains 'e'-indexed table 11823f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown */ 11833f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 11843f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static class SelectStringIndexedContains10000 extends 11853f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown PerformanceBase { 11863f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final int SIZE = 100 * kMultiplier; 11873f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private static final String[] COLUMNS = {"t3.a"}; 11883f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown private String[] where = new String[SIZE]; 11893f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 11903f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown @Override 11913f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void setUp() { 11923f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown super.setUp(); 11933f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown Random random = new Random(42); 11943f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 11953f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase 11963f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown .execSQL("CREATE TABLE t3(a VARCHAR(100))"); 11973f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("CREATE INDEX i3a ON t3(a)"); 11983f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 11993f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 12003f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown int r = random.nextInt(100000); 12013f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.execSQL("INSERT INTO t3 VALUES('" 12023f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown + numberName(r) + "')"); 12033f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 12043f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 12053f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 12063f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown where[i] = "a LIKE '*e*'"; 12073f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 12083f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 12093f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 12103f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown 12113f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public void testRun() { 12123f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown for (int i = 0; i < SIZE; i++) { 12133f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown mDatabase.query("t3", COLUMNS, where[i], null, null, null, null); 12143f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 12153f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown } 12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12183f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static final String[] ONES = 12193f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown {"zero", "one", "two", "three", "four", "five", "six", "seven", 12203f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown "eight", "nine", "ten", "eleven", "twelve", "thirteen", 12213f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", 12223f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown "nineteen"}; 12239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12243f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown public static final String[] TENS = 12253f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown {"", "ten", "twenty", "thirty", "forty", "fifty", "sixty", 12263f11f302c7e8c4ba513f6c559f33db96319c3825Jeff Brown "seventy", "eighty", "ninety"}; 12279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 1228