Мое приложение Win JS SQLite 3 требует слишком много времени для вставки

Здесь я делаю приложение базы данных Sqlite3 в приложениях магазина Windows в сценарии HTML/java.

Сейчас я использую компонент Sqlite3-WinRT.

Он работает нормально, но я не получаю требуемой производительности. Для вставки данных требуется слишком много времени. Есть ли способ ускорить вставку с помощью этой библиотеки?

Если это невозможно, может ли кто-нибудь предложить мне любую другую библиотеку или компонент для использования sqlite3 в приложениях магазина Windows?

Заранее спасибо..


person ArchFever    schedule 13.12.2013    source источник
comment
вы можете использовать sqlite-net, который LinqTOSQL, чтобы вы могли получить лучшую производительность там   -  person techloverr    schedule 13.12.2013
comment
stackoverflow.com/a/10894948/2963912   -  person techloverr    schedule 13.12.2013
comment
Я использовал компонент SQLite3-WinRT. Я прошу повысить производительность. Поэтому мне нужна другая оболочка.   -  person ArchFever    schedule 13.12.2013
comment
обязательно ли использовать SQLite? вы можете использовать indexeddb для HTML5/JS   -  person techloverr    schedule 13.12.2013
comment
До сих пор я разрабатывал свое приложение в SQLite... так что было бы лучше, если бы я получил какую-либо помощь для Sqlite....   -  person ArchFever    schedule 13.12.2013
comment
Я не знаю эквивалентных вызовов js, но вы пытались обернуть свои вставки в транзакцию? Связано: Добавление большого количества данных в базу данных SQLite в C#< /а>   -  person chue x    schedule 13.12.2013
comment
@chue x: спасибо за вашу любезную помощь, но не могли бы вы попытаться дать мне транзакцию в js ??   -  person ArchFever    schedule 14.12.2013


Ответы (2)


Вы можете попробовать обернуть свои вставки в

"BEGIN TRANSACTION"  

и закончить его с

"COMMIT TRANSACTION"

, это, безусловно, улучшит вашу вставку (я использовал ту же обертку).

Если это не сработает, вы можете попробовать использовать этот компонент, даже если он на C#, вы можете используйте его в WinJS.

Существует статья о том, как улучшить вставку и выборку с помощью этого компонента.

person user3454923    schedule 29.07.2014

Транзакции повысили производительность в приложениях C# SQLite3 , поэтому они могут помочь вам в вашем приложении Win JS.

Если вы посмотрите на проблему 56 в списке проблем SQLite3-WinRT, они показывают как использовать транзакции:

SQLite3JS.openAsync(dbPath)
.then(function (db) {
  return db.runAsync('PRAGMA temp_store = MEMORY;');
}).then(function (db) {
  return db.runAsync("BEGIN TRANSACTION;");
});

Некоторые примечания:

  • В выпуске 56 говорится, что использование PRAGMA является временным и может не понадобиться в будущем. Вы должны проверить и посмотреть, если это необходимо.
  • Приведенный выше код просто запускает транзакцию. Очевидно, вам все равно нужно будет добавить: 1) свои вставки и 2) вызов для фиксации или отмены транзакции, например, db.runAsync("COMMIT TRANSACTION;");
person chue x    schedule 14.12.2013