Windows Mobile Компактная Платформа SqlCeConnection

Я слышу, что это лучше, чтобы иметь одно соединение, открытое после запуска приложения и закрытия его, когда приложение закрывается.

Какая проблема может произойти, имея многочисленные связи?

Какие-либо статьи там, что это - лучшие практики, чтобы иметь одно соединение?

Каков Ваш опыт с sql ce?

5
задан Jon Seigel 23 May 2010 в 02:39
поделиться

2 ответа

В нашем приложении SQL CE 3.5 / Compact Framework 3.5 мы открываем соединение при запуске и оставляем его открытым до закрытия приложения. База данных требуется почти при каждом взаимодействии пользователя с приложением, и поддерживать соединение открытым быстрее, чем открывать и закрывать его по требованию.

Все обновления данных выполняются в транзакциях. Мы фиксируем транзакции, используя параметр CommitMode.Immediate . Это гарантирует, что изменения данных немедленно записываются в файл, сводя к минимуму возможность потери данных.

2
ответ дан 15 December 2019 в 00:57
поделиться

Это действительно зависит от ситуации. Для производительности SQL CE лучше всего работает, если всегда есть живое соединение с базой данных, так как движку не нужно создавать все при каждом подключении.

Однако наличие единственного соединения приводит к ленивому сбрасыванию данных в файл и более высокой вероятности потери или повреждения данных в случае катастрофического сбоя.

Я обычно открываю "фиктивное" соединение с базой данных при запуске приложения и держу это соединение всегда открытым, но редко или вообще никогда не используемым. Это позволяет "запустить двигатель", если хотите. Затем для фактического доступа к данным я использую отдельное соединение и управляю состоянием в зависимости от того, чем я занимаюсь, обычно оставляя его открытым для нескольких запросов (псевдотранзакция, если хотите), но не оставляя его открытым бесконечно.

2
ответ дан 15 December 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: