Пул соединений в hsqldb - PullRequest
       25

Пул соединений в hsqldb

3 голосов
/ 05 ноября 2008

Каков наилучший способ реализовать пул соединений в hsqldb без ущерба для скорости?

Ответы [ 3 ]

3 голосов
/ 05 ноября 2008

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

Вам стоит попробовать commons-dbcp из Apache-Jakarta, это очень эффективно и очень просто настроить. Это зависит от общего фонда. Вы просто определяете BasicDataSource с DBCP, и он будет управлять соединениями из любого драйвера JDBC, который вы скажете ему использовать. Он имеет проверку соединения и много других вещей. Если вы пишете веб-приложение, настройте пул соединений в контейнере, который вы будете использовать, и используйте его вместо определения собственного пула.

2 голосов
/ 05 ноября 2008

Вы сравниваете яблоки и апельсины:

  1. Если вы хотите, чтобы orm сравнивал производительность разных инструментов orm с одним и тем же БД.
  2. Если вы хотите создать пул соединений, сравните разные библиотеки пулов соединений с одним и тем же БД.

Выполнение ORM требует дополнительных усилий, поэтому оно никогда не будет таким быстрым, как прямой доступ к JDBC. Тем не менее, hibernate идет на многое (и очень успешно), чтобы минимизировать эти дополнительные издержки. С ORM вы компенсируете значительно возросшую производительность разработки на фоне относительно небольшого падения производительности.

Пул соединений является ортогональной проблемой для orm. Очевидно, что hibernate позволяет вам выбирать собственную инфраструктуру пула соединений.

Также следует помнить, что на практике часто существует довольно тесная связь между пулом соединений и транзакцией mgmt. Например, типичное приложение J2EE оставляет пул соединений с контейнером (через API источника данных JDBC) и полагается на декларативные транзакции. В этом случае соединения и транзакции управляются (приблизительно) вместе.

Если вы не находитесь в контейнере J2EE и вам не нужен orm, я бы просто сравнил C3P0, commons-pool и т. Д.

1 голос
/ 05 ноября 2008

Если бы вы использовали собственный пул соединений Hibernate, вы могли бы рассмотреть возможность использования c3p0 ? (Если вы уже используете c3p0, я не могу помочь в дальнейшем) Я сам не использовал HSQLDB, но думаю, стоит попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...