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