Какая скорость в SQLite?
Вставки идут в рамках одной транзакции?
Использовался ли prepared statements? Он позволяет 1 раз распарсить ваш запрос, а потом только данные для вставки меняются.
P.S. странное решение — парсить XML в тех случаях, когда мало SQLite.
XPath на мой взгляд будет гораздо дольше + может памяти не хватить.
В каких целях будете использовать эти данные?
Если в выборке нужны условия, то от SQLite не уйти.
Вообще SQLite — специализированное хранилище, т.е. его скорость вряд ли удастся обойти.
Только если использование этих данных специфическое, то только тогда есть шанс построения специального хранилища, которое по скорости обойдет SQLite.
В одном проекте использовал protobuf, но не в целях ускорения выборки, в целях прототипирования — можно сразу генерировать классы для работы с данными. В результате так и остался на protobuf — скорость оказалась вполне приемлемая.