2008-10-14 14 views
6

Mam aplikację Java skonfigurowaną jako usługa do eksploracji danych w oparciu o ~ 3 GB danych co kilka godzin. Chciałbym, żeby to nastąpiło w 100% w pamięci. Idealnie chciałbym, aby aplikacja była odizolowana od wszystkiego; Chcę, żeby zbudował bazę danych, wykonał wydobycie, którego potrzebuję, i zniszczył bazę danych, kiedy to zrobi.Baza danych HSQL z pamięcią 100%

Jednak w przypadku HSQLDB, nawet jeśli używam polecenia "create memory table ....", zapisuje się wszystkie wyciągi, a tabela jest odtwarzana przy następnym uruchomieniu aplikacji.

Zrobiłem DUŻO insertów, ~ 150k +, więc ten plik szybko się powiększy. Nie dbam także o rekonstrukcję bazy danych przy następnym uruchomieniu, więc rejestrowanie jest dla mnie bezużyteczne.

Mogę po prostu usunąć plik, kiedy skończę, ale jeśli to możliwe, chciałbym uniknąć konieczności pisania tak dużo na dysku.

Czy istnieje sposób, aby wyłączyć tę funkcję?

Z góry dziękuję!

+0

O którym logowaniu mówisz? – abarax

+0

i czy używasz Hibernate do tworzenia tabel? lub JDBC? – abarax

Odpowiedz

7

Nie ma problemu, wystarczy otworzyć połączenie z bazą danych w ten sposób:

Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:aname", "sa", ""); 

Aby uzyskać więcej informacji, zapoznaj się z HSQL docs.