Во-первых, используйте ИНДЕКС
http://www.sqlite.org/lang_createindex.html
в вашем случае это будет что-то вроде:
CREATE INDEX idx_bigram ON bigrams (bigram)
Во-вторых, используйте '?' вместо буквального запроса. Помогает sqlite для кеширования запросов:
String select = "SELECT frequency FROM bigrams WHERE bigram = ?";
Cursor mCursor = db.rawQuery(select, new String[]{ bigram });
В-третьих, я полагаю, что запрос более эффективен, чем rawQuery:
mCursor = dq.query("bigrams", new String[] { "frequency" }, "bigram = ?",
new String[]{ bigram }, null, null, null, null);
В-четвертых, вы можете запросить несколько значений одновременно (несовместимо с пунктом 2):
SELECT frequency FROM bigrams WHERE bigrams IN ('1', '2', '3')
В-пятых, вам не нужно каждый раз открывать базу данных. Вы должны рассмотреть возможность оставить его открытым.
Редактировать
После просмотра этого вопроса IN предложения и заполнителей оказывается, что вы можете объединить 2 и 4 в конце концов (хотя не уверен, что это полезно)