я использую HSQLDB 2.3.2 и у меня есть следующие вопросы:усечение занимает слишком много времени HSQLDB
- Моя базы данных в кэше таблицы с 10 000 000 записей, без каких-либо ограничений и индексов. Его размер составляет ~ 900 мб. Я выключаю режим автосохранения, и когда я пытаюсь выполнить «Truncate table tableName», выполнение зависает, но только dbName.backup растет. И вот почему:
TRACE ENGINE :? - copyShadow [размер, время] 2246252 9721
TRACE ДВИГАТЕЛЬ :? - setFileModified флаг
TRACE ENGINE :? - сохранение кеша строк [количество, время] итого 24801,9921 операция 24801,9921 txts 96
TRACE ENGINE :? - copyShadow [размер, время] 4426920 7732
TRACE ДВИГАТЕЛЬ :? - кэш save rows [count, time] итоговые данные 49609,17775 операция 24808,7854 txts 96
TRACE ENGINE :? - copyShadow [размер, время]
занимает около 1500-2000 секунд, и, наконец, я могу получить либо пустую таблицу или исключение, которое является чем-то вроде этого:
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1,525.509 sec
org.apache.maven.surefire.util.SurefireReflectionException: java.lang.reflect.InvocationTargetException; nested exception is java.lang.reflect.InvocationTargetException: null
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
Caused by: java.lang.OutOfMemoryError: Java heap space
После усечения dbName.backup удаляется. Мне не нужно использовать какие-либо резервные копии в моем приложении, как я могу избежать копирования?
- dbName.properties не работает. Он содержит следующий текст:
2.3.2 #HSQL Database Engine
#Thu 19 Мар 8:42:10 EAT 2015
версию = 2.3.2
модифицированный = нет
hsqldb.applog=1
, но ничего не произошло.
dbName.app.log появляется в случае, если вы меняете строку
SET DATABASE EVENT LOG LEVEL 1
в dbName.script
После работы с базой данных из моего приложения dbName.properties перезаписано: «измененные» изменения в «да» и любые строки ниже удалены. Что я делаю неправильно?
Thx для ответа! Ваше заявление прекрасно работает! Btw Я добавлю ограничения позже, мне не нужно прямо сейчас – viRUS