Frequently Asked QuestionsAre there Known Bugs? When is the Next Release?Is this Database Engine Open Source? My Query is Slow How to Create a New Database? How to Connect to a Database? Where are the Database Files Stored? What is the Size Limit (Maximum Size) of a Database? Is it Reliable? Why is Opening my Database Slow? Is the GCJ Version Stable? Faster? How to Translate this Project? Are there Known Bugs? When is the Next Release?Usually, bugs get fixes as they are found. There is a release every few weeks. Here is the list of known and confirmed issues:
Is this Database Engine Open Source?Yes. It is free to use and distribute, and the source code is included. See also under license. My Query is SlowSlow SELECT (or DELETE, UPDATE, MERGE) statement can have multiple reasons. Follow this checklist:
How to Create a New Database?By default, a new database is automatically created if it does not yet exist. How to Connect to a Database?
The database driver is Class.forName("org.h2.Driver"); Connection conn = DriverManager.getConnection("jdbc:h2:~/test", "sa", ""); Where are the Database Files Stored?When using database URLs like jdbc:h2:~/test, the database is stored in the user directory. For Windows, this is usually C:\Documents and Settings\<userName>. If the base directory is not set (as in jdbc:h2:test), the database files are stored in the directory where the application is started (the current working directory). When using the H2 Console application from the start menu, this is [Installation Directory]/bin. The base directory can be set in the database URL. A fixed or relative path can be used. When using the URL jdbc:h2:file:data/sample, the database is stored in the directory data (relative to the current working directory). The directory is created automatically if it does not yet exist. It is also possible to use the fully qualified directory (and for Windows, drive) name. Example: jdbc:h2:file:C:/data/test What is the Size Limit (Maximum Size) of a Database?The theoretical limit is currently 256 GB for the data. This number is excluding BLOB and CLOB data: Every CLOB or BLOB can be up to 256 GB as well. The size limit of the index data is 256 GB as well. The maximum number of rows per table is 2'147'483'648. The maximum file size for FAT or FAT32 file systems is 4 GB. So if you use FAT or FAT32, the limit is 4 GB for the data. The larger the database, the more main memory is required. Currently the minimum main memory required for a 12 GB database is around 240 MB. Is it Reliable?That is not easy to say. It is still a quite new product. A lot of tests have been written, and the code coverage of these tests is very high. Randomized stress tests are run regularly. But as this is a relatively new product, there are probably some problems that have not yet been found (as with most software). Some features are known to be dangerous by design, and some problems are hard to solve. Those are:
In addition to that, running out of memory should be avoided. In some versions, OutOfMemory errors while using the database could corrupt a databases. Not all such problems may be fixed. Areas that are not fully tested:
Areas considered Experimental:
Why is Opening my Database Slow?If it takes a long time to open a database, in most cases it was not closed the last time. This is specially a problem for larger databases. To close a database, close all connections to it before the application ends, or execute the command SHUTDOWN. The database is also closed when the virtual machine exits normally by using a shutdown hook. However killing a Java process or calling Runtime.halt will prevent this. To find out what the problem is, open the database in embedded mode using the H2 Console. This will print progress information. If you have many 'Creating index' lines it is an indication that the database was not closed the last time. Other possible reasons are: the database is very big (many GB), or contains linked tables that are slow to open. Is the GCJ Version Stable? Faster?The GCJ version is not as stable as the Java version. When running the regression test with the GCJ version, sometimes the application just stops at what seems to be a random point without error message. Currently, the GCJ version is also slower than when using the Sun VM. However, the startup of the GCJ version is faster than when using a VM. How to Translate this Project?For more information, see Build/Translating. |