Добавьте тему с фоном, который вы используете, к тегу приложения в файле манифеста, чтобы предотвратить появление черного экрана.
theme.xml
AndroidManifest.xml
....
....
Обычный способ, которым я делаю это на pg: загружаю необработанные данные, соответствующие целевой таблице, во временную таблицу (без ограничений), используя копирование, слияние (забавная часть), прибыль.
I написал функцию merge_by_key специально для этих ситуаций:
http://mbk.projects.postgresql.org/
Документы не очень дружелюбны, но я бы посоветовал дать ей хорошо посмотрите.
Несколько месяцев назад у меня была похожая ситуация, и в итоге я получил наибольший прирост скорости за счет настроенного размера блока / транзакции. Вы также можете проверить журнал на предмет предупреждения о контрольной точке во время теста и выполнить соответствующую настройку.
Похоже, вы заметили преимущества использования WAL (Write Ahead Logging) с ИБП для кэширования ваших обновлений между записями на диск.
wal_buffers This setting decides the number of buffers WAL(Write ahead Log) can have. If your database has many write transactions, setting this value bit higher than default could result better usage of disk space. Experiment and decide. A good start would be around 32-64 corresponding to 256-512K memory.
В вашем insert_or_replace
. попробуйте следующее:
WHERE EXISTS(SELECT 1 FROM item WHERE key=NEW.key LIMIT 1)
вместо
WHERE EXISTS(SELECT 1 FROM item WHERE key=NEW.key)
Как отмечалось в комментариях, это, вероятно, ничего не даст. Все, что я должен добавить, это то, что вы всегда можете ускорить выполнение INSERT / UPDATE, удалив индексы. Скорее всего, вы не захотите этого делать, если не обнаружите, что ваша таблица переиндексирована, но это следует хотя бы проверить.
В Oracle блокировка таблицы определенно поможет. Вы можете попробовать это и с PostgreSQL.
Для обновлений вы можете уменьшить коэффициент заполнения для таблиц и индексов, и это может помочь
http://www.postgresql.org/docs/current/static/sql-createtable .html
http://www.postgresql.org/docs/current/static/sql-createindex.html