Лучшие практики, как нужно открывать и закрывать базу данных - db4o - PullRequest
0 голосов
/ 06 марта 2012

Я использую db4o.Мой вопрос касается рекомендаций о том, как открывать и закрывать базу данных в веб-форме ASP.NET?

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

У меня есть класс "System", который использует шаблон Singleton, и это единственный класс, который подключается к базе данных.В конструкторе я открываю базу данных, но я не уверен, когда ее закрывать или даже когда фиксировать.

  1. Стоит ли делать КАЖДЫЙ ВРЕМЯ после сохранения в случае успеха и откатаесли ошибка?

  2. Когда мне следует закрыть или удалить базу данных?Должен ли я реализовать интерфейс IDisposable?Должен ли я добавить деструктор в мой класс "Система"?

Ответы [ 2 ]

4 голосов
/ 06 марта 2012

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

Это - это лучшая практика.Проблемы с производительностью решаются с помощью пула подключений.

Если в одной и той же области есть несколько сохранений и обновлений, используйте 1 соединение.

Но не пытайтесь кэшировать соединение.Правильно освободить это гораздо важнее.

Как правило, в качестве локальных переменных используйте только переменные соединения, предпочтительно в выражении using() {}.Не делайте их поля / свойства, которые действительно требуют IDisposable и т. Д. Постарайтесь избежать этого.

0 голосов
/ 06 марта 2012

Когда вы делаете коммит, зависит от вас, а не от разъема. Я бы сказал, что закрытие так же конкретно; если вы завершили работу с базой данных в первых 3 вызовах страницы, зачем держать ее открытой до конца обработки?

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

...