Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
4ab7caf6
提交
4ab7caf6
authored
4月 11, 2014
作者:
Thomas Mueller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Documentation / update performance results.
上级
d189325c
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
77 行增加
和
97 行删除
+77
-97
changelog.html
h2/src/docsrc/html/changelog.html
+7
-33
download.html
h2/src/docsrc/html/download.html
+1
-1
mainWeb.html
h2/src/docsrc/html/mainWeb.html
+1
-1
mvstore.html
h2/src/docsrc/html/mvstore.html
+5
-4
performance.html
h2/src/docsrc/html/performance.html
+42
-42
roadmap.html
h2/src/docsrc/html/roadmap.html
+1
-0
source.html
h2/src/docsrc/html/source.html
+2
-0
sourceError.html
h2/src/docsrc/html/sourceError.html
+2
-0
Build.java
h2/src/tools/org/h2/build/Build.java
+16
-16
没有找到文件。
h2/src/docsrc/html/changelog.html
浏览文件 @
4ab7caf6
...
@@ -17,11 +17,15 @@ Change Log
...
@@ -17,11 +17,15 @@ Change Log
<h1>
Change Log
</h1>
<h1>
Change Log
</h1>
<h2>
Changes in Version 1.4 Beta (unreleased)
</h2>
<h2>
Next Version (unreleased)
</h2>
<ul><li>
-
</li></ul>
<h2>
Version 1.4.176 Beta (2014-04-11)
</h2>
<ul><li>
By default, the MV_STORE option is enabled, so it is using the new MVStore
<ul><li>
By default, the MV_STORE option is enabled, so it is using the new MVStore
storage. The MVCC setting is by default set to the same values as the MV_STORE setting,
storage. The MVCC setting is by default set to the same values as the MV_STORE setting,
so it is also enabled by default. For testing, both settings can be disabled by appending
so it is also enabled by default. For testing, both settings can be disabled by appending
";MV_STORE=FALSE"
/
";MVCC=FALSE" to the database URL.
";MV_STORE=FALSE"
and/or
";MVCC=FALSE" to the database URL.
</li><li>
The file locking method 'serialized' is no longer supported.
</li><li>
The file locking method 'serialized' is no longer supported.
This mode might return in a future version,
This mode might return in a future version,
however this is not clear right now.
however this is not clear right now.
...
@@ -42,10 +46,7 @@ Change Log
...
@@ -42,10 +46,7 @@ Change Log
</li><li>
Remove support for the limited old-style outer join syntax using "(+)".
</li><li>
Remove support for the limited old-style outer join syntax using "(+)".
Use "outer join" instead.
Use "outer join" instead.
System property "h2.oldStyleOuterJoin".
System property "h2.oldStyleOuterJoin".
</li></ul>
</li><li>
Support the data type "DATETIME2" as an alias for "DATETIME", for MS SQL Server compatibility.
<h2>
Next Version (unreleased)
</h2>
<ul><li>
Support the data type "DATETIME2" as an alias for "DATETIME", for MS SQL Server compatibility.
</li><li>
Add Oracle-compatible TRANSLATE function, patch by Eric Chatellier.
</li><li>
Add Oracle-compatible TRANSLATE function, patch by Eric Chatellier.
</li></ul>
</li></ul>
...
@@ -391,32 +392,5 @@ Change Log
...
@@ -391,32 +392,5 @@ Change Log
</li><li>
Serialization is now pluggable using the system property "h2.javaObjectSerializer". Thanks to Sergi Vladykin for the patch!
</li><li>
Serialization is now pluggable using the system property "h2.javaObjectSerializer". Thanks to Sergi Vladykin for the patch!
</li></ul>
</li></ul>
<h2>
Version 1.3.169 (2012-09-09)
</h2>
<ul><li>
The default jar file is now compiled for Java 6.
</li><li>
The new jar file will probably not end up in the central Maven repository
in the next few weeks because Sonatype has disabled automatic synchronization
from SourceForge (which they call 'legacy sync' now).
It will probably take some time until this is sorted out. The H2 jar files are deployed to
http://h2database.com/m2-repo/com/h2database/h2/maven-metadata.xml
and http://hsql.sourceforge.net/m2-repo/com/h2database/h2/maven-metadata.xml
as usual.
</li><li>
A part of the documentation and the H2 Console has been changed to support the Apple retina display.
</li><li>
The CreateCluster tool could not be used if the source database contained a CLOB or BLOB.
The root cause was that the TCP server did not synchronize on the session, which caused a problem
when using the exclusive mode.
</li><li>
Statement.getQueryTimeout(): only the first call to this method will query the database.
If the query timeout was changed in another way than calling setQueryTimeout,
this method will always return the last value. This was changed because Hibernate
calls getQueryTimeout() a lot.
</li><li>
Issue 416: PreparedStatement.setNString throws AbstractMethodError.
All implemented JDBC 4 methods that don't break compatibility with Java 5
are now included in the default jar file.
</li><li>
Issue 414: for some functions, the parameters were evaluated twice
(for example "char(nextval(..))" ran "nextval(..)" twice).
</li><li>
The ResultSetMetaData methods getSchemaName and getTableName
could return null instead of "" (an empty string) as specified in the JDBC API.
</li><li>
Added compatibility for "SET NAMES" query in MySQL compatibility mode.
</li>
</ul>
<!-- [close] { -->
</div></td></tr></table>
<!-- } --><!-- analytics -->
</body></html>
<!-- [close] { -->
</div></td></tr></table>
<!-- } --><!-- analytics -->
</body></html>
h2/src/docsrc/html/download.html
浏览文件 @
4ab7caf6
...
@@ -17,7 +17,7 @@ Downloads
...
@@ -17,7 +17,7 @@ Downloads
<h1>
Downloads
</h1>
<h1>
Downloads
</h1>
<h3>
Version ${version} (${versionDate})
</h3>
<h3>
Version ${version} (${versionDate})
, Beta
</h3>
<p>
<p>
<a
href=
"http://www.h2database.com/h2-setup-${versionDate}.exe"
>
Windows Installer
</a>
<a
href=
"http://www.h2database.com/h2-setup-${versionDate}.exe"
>
Windows Installer
</a>
<!-- sha1Exe -->
<br
/>
<!-- sha1Exe -->
<br
/>
...
...
h2/src/docsrc/html/mainWeb.html
浏览文件 @
4ab7caf6
...
@@ -35,7 +35,7 @@ Welcome to H2, the Java SQL database. The main features of H2 are:
...
@@ -35,7 +35,7 @@ Welcome to H2, the Java SQL database. The main features of H2 are:
<table
style=
"border: 0px; margin: 0px 7px 12px 7px;"
>
<table
style=
"border: 0px; margin: 0px 7px 12px 7px;"
>
<tr><td
style=
"border: 0px; background-color: #eee;"
colspan=
"2"
>
<tr><td
style=
"border: 0px; background-color: #eee;"
colspan=
"2"
>
<h2
style=
"margin-top: 1em;"
>
Download
</h2>
<h2
style=
"margin-top: 1em;"
>
Download
</h2>
Version ${version} (${versionDate})
Version ${version} (${versionDate})
, Beta
</td></tr>
</td></tr>
<tr><td
style=
"border: 0px; background-color: #eee;"
>
<tr><td
style=
"border: 0px; background-color: #eee;"
>
<a
href=
"http://www.h2database.com/h2-setup-${versionDate}.exe"
><img
src=
"images/download-2.png"
alt=
"Download this database"
width=
"22"
height=
"22"
/></a>
<a
href=
"http://www.h2database.com/h2-setup-${versionDate}.exe"
><img
src=
"images/download-2.png"
alt=
"Download this database"
width=
"22"
height=
"22"
/></a>
...
...
h2/src/docsrc/html/mvstore.html
浏览文件 @
4ab7caf6
...
@@ -607,8 +607,8 @@ The fields of the chunk header and footer are:
...
@@ -607,8 +607,8 @@ The fields of the chunk header and footer are:
Chunks are never updated in-place. Each chunk contains the pages that were
Chunks are never updated in-place. Each chunk contains the pages that were
changed in that version (there is one chunk per version, see above),
changed in that version (there is one chunk per version, see above),
plus all the parent nodes of those pages, recursively, up to the root page.
plus all the parent nodes of those pages, recursively, up to the root page.
If an entry in a map is changed, removed, or added, then the respective page is copied
If an entry in a map is changed, removed, or added, then the respective page is copied
,
to be
stored in the next chunk, and the number of live pages in the old chunk is decremented.
modified, and
stored in the next chunk, and the number of live pages in the old chunk is decremented.
This mechanism is called copy-on-write, and is similar to how the
This mechanism is called copy-on-write, and is similar to how the
<a
href=
"https://en.wikipedia.org/wiki/Btrfs"
>
Btrfs
</a>
file system works.
<a
href=
"https://en.wikipedia.org/wiki/Btrfs"
>
Btrfs
</a>
file system works.
Chunks without live pages are marked as free, so the space can be re-used by more recent chunks.
Chunks without live pages are marked as free, so the space can be re-used by more recent chunks.
...
@@ -651,7 +651,8 @@ and <a href="https://en.wikipedia.org/wiki/Variable-length_quantity">variable si
...
@@ -651,7 +651,8 @@ and <a href="https://en.wikipedia.org/wiki/Variable-length_quantity">variable si
</li><li>
mapId (variable size int): The id of the map this page belongs to.
</li><li>
mapId (variable size int): The id of the map this page belongs to.
</li><li>
len (variable size int): The number of keys in the page.
</li><li>
len (variable size int): The number of keys in the page.
</li><li>
type (byte): The page type (0 for leaf page, 1 for internal node;
</li><li>
type (byte): The page type (0 for leaf page, 1 for internal node;
plus 2 if the keys and values are compressed).
plus 2 if the keys and values are compressed with the LZF algorithm, or
plus 6 if the keys and values are compressed with the Deflate algorithm).
</li><li>
children (array of long; internal nodes only): The position of the children.
</li><li>
children (array of long; internal nodes only): The position of the children.
</li><li>
childCounts (array of variable size long; internal nodes only):
</li><li>
childCounts (array of variable size long; internal nodes only):
The total number of entries for the given child page.
The total number of entries for the given child page.
...
@@ -684,7 +685,7 @@ and when a page is marked as removed, the live maximum length is adjusted.
...
@@ -684,7 +685,7 @@ and when a page is marked as removed, the live maximum length is adjusted.
This allows to estimate the amount of free space within a block, in addition to the number of free pages.
This allows to estimate the amount of free space within a block, in addition to the number of free pages.
</p>
</p>
<p>
<p>
The total number of entries in child
nod
es are kept to allow efficient range counting,
The total number of entries in child
pag
es are kept to allow efficient range counting,
lookup by index, and skip operations.
lookup by index, and skip operations.
The pages form a
<a
href=
"http://www.chiark.greenend.org.uk/~sgtatham/algorithms/cbtree.html"
>
counted B-tree
</a>
.
The pages form a
<a
href=
"http://www.chiark.greenend.org.uk/~sgtatham/algorithms/cbtree.html"
>
counted B-tree
</a>
.
</p>
</p>
...
...
h2/src/docsrc/html/performance.html
浏览文件 @
4ab7caf6
...
@@ -49,54 +49,54 @@ the per-statement overhead is greatly reduced.
...
@@ -49,54 +49,54 @@ the per-statement overhead is greatly reduced.
<h3>
Embedded
</h3>
<h3>
Embedded
</h3>
<table
class=
"main"
>
<table
class=
"main"
>
<tr><th>
Test Case
</th><th>
Unit
</th><th>
H2
</th><th>
HSQLDB
</th><th>
Derby
</th></tr>
<tr><th>
Test Case
</th><th>
Unit
</th><th>
H2
</th><th>
HSQLDB
</th><th>
Derby
</th></tr>
<tr><td>
Simple: Init
</td><td>
ms
</td><td>
241
</td><td>
431
</td><td>
1027
</td></tr>
<tr><td>
Simple: Init
</td><td>
ms
</td><td>
1019
</td><td>
1907
</td><td>
8280
</td></tr>
<tr><td>
Simple: Query (random)
</td><td>
ms
</td><td>
1
93
</td><td>
267
</td><td>
748
</td></tr>
<tr><td>
Simple: Query (random)
</td><td>
ms
</td><td>
1
304
</td><td>
873
</td><td>
1912
</td></tr>
<tr><td>
Simple: Query (sequential)
</td><td>
ms
</td><td>
8
9
</td><td>
179
</td><td>
658
</td></tr>
<tr><td>
Simple: Query (sequential)
</td><td>
ms
</td><td>
8
35
</td><td>
1839
</td><td>
5415
</td></tr>
<tr><td>
Simple: Update (
random)
</td><td>
ms
</td><td>
406
</td><td>
772
</td><td>
12175
</td></tr>
<tr><td>
Simple: Update (
sequential)
</td><td>
ms
</td><td>
961
</td><td>
2333
</td><td>
21759
</td></tr>
<tr><td>
Simple: Delete (sequential)
</td><td>
ms
</td><td>
155
</td><td>
266
</td><td>
6281
</td></tr>
<tr><td>
Simple: Delete (sequential)
</td><td>
ms
</td><td>
950
</td><td>
1922
</td><td>
32016
</td></tr>
<tr><td>
Simple: Memory Usage
</td><td>
MB
</td><td>
7
</td><td>
13
</td><td>
16
</td></tr>
<tr><td>
Simple: Memory Usage
</td><td>
MB
</td><td>
21
</td><td>
10
</td><td>
8
</td></tr>
<tr><td>
BenchA: Init
</td><td>
ms
</td><td>
200
</td><td>
251
</td><td>
1075
</td></tr>
<tr><td>
BenchA: Init
</td><td>
ms
</td><td>
919
</td><td>
2133
</td><td>
7528
</td></tr>
<tr><td>
BenchA: Transactions
</td><td>
ms
</td><td>
1
071
</td><td>
1458
</td><td>
8142
</td></tr>
<tr><td>
BenchA: Transactions
</td><td>
ms
</td><td>
1
219
</td><td>
2297
</td><td>
8541
</td></tr>
<tr><td>
BenchA: Memory Usage
</td><td>
MB
</td><td>
8
</td><td>
14
</td><td>
12
</td></tr>
<tr><td>
BenchA: Memory Usage
</td><td>
MB
</td><td>
12
</td><td>
15
</td><td>
7
</td></tr>
<tr><td>
BenchB: Init
</td><td>
ms
</td><td>
787
</td><td>
1584
</td><td>
4163
</td></tr>
<tr><td>
BenchB: Init
</td><td>
ms
</td><td>
905
</td><td>
1993
</td><td>
8049
</td></tr>
<tr><td>
BenchB: Transactions
</td><td>
ms
</td><td>
465
</td><td>
875
</td><td>
2744
</td></tr>
<tr><td>
BenchB: Transactions
</td><td>
ms
</td><td>
1091
</td><td>
583
</td><td>
1165
</td></tr>
<tr><td>
BenchB: Memory Usage
</td><td>
MB
</td><td>
17
</td><td>
1
3
</td><td>
10
</td></tr>
<tr><td>
BenchB: Memory Usage
</td><td>
MB
</td><td>
17
</td><td>
1
1
</td><td>
8
</td></tr>
<tr><td>
BenchC: Init
</td><td>
ms
</td><td>
348
</td><td>
225
</td><td>
922
</td></tr>
<tr><td>
BenchC: Init
</td><td>
ms
</td><td>
2491
</td><td>
4003
</td><td>
8064
</td></tr>
<tr><td>
BenchC: Transactions
</td><td>
ms
</td><td>
1
382
</td><td>
865
</td><td>
3527
</td></tr>
<tr><td>
BenchC: Transactions
</td><td>
ms
</td><td>
1
979
</td><td>
803
</td><td>
2840
</td></tr>
<tr><td>
BenchC: Memory Usage
</td><td>
MB
</td><td>
1
2
</td><td>
20
</td><td>
11
</td></tr>
<tr><td>
BenchC: Memory Usage
</td><td>
MB
</td><td>
1
9
</td><td>
22
</td><td>
9
</td></tr>
<tr><td>
Executed statements
</td><td>
#
</td><td>
322929
</td><td>
322929
</td><td>
322929
</td></tr>
<tr><td>
Executed statements
</td><td>
#
</td><td>
1930995
</td><td>
1930995
</td><td>
1930995
</td></tr>
<tr><td>
Total time
</td><td>
ms
</td><td>
5337
</td><td>
7173
</td><td>
41462
</td></tr>
<tr><td>
Total time
</td><td>
ms
</td><td>
13673
</td><td>
20686
</td><td>
105569
</td></tr>
<tr><td>
Statements per second
</td><td>
#
</td><td>
60507
</td><td>
45020
</td><td>
7788
</td></tr>
<tr><td>
Statements per second
</td><td>
#
</td><td>
141226
</td><td>
93347
</td><td>
18291
</td></tr>
</table>
</table>
<h3>
Client-Server
</h3>
<h3>
Client-Server
</h3>
<table
class=
"main"
>
<table
class=
"main"
>
<tr><th>
Test Case
</th><th>
Unit
</th><th>
H2
</th><th>
HSQLDB
</th><th>
Derby
</th><th>
PostgreSQL
</th><th>
MySQL
</th></tr>
<tr><th>
Test Case
</th><th>
Unit
</th><th>
H2
(Server)
</th><th>
HSQLDB
</th><th>
Derby
</th><th>
PostgreSQL
</th><th>
MySQL
</th></tr>
<tr><td>
Simple: Init
</td><td>
ms
</td><td>
1
715
</td><td>
2096
</td><td>
3008
</td><td>
3093
</td><td>
3084
</td></tr>
<tr><td>
Simple: Init
</td><td>
ms
</td><td>
1
6338
</td><td>
17198
</td><td>
27860
</td><td>
30156
</td><td>
29409
</td></tr>
<tr><td>
Simple: Query (random)
</td><td>
ms
</td><td>
2615
</td><td>
2119
</td><td>
4450
</td><td>
3201
</td><td>
3313
</td></tr>
<tr><td>
Simple: Query (random)
</td><td>
ms
</td><td>
3399
</td><td>
2582
</td><td>
6190
</td><td>
3315
</td><td>
3342
</td></tr>
<tr><td>
Simple: Query (sequential)
</td><td>
ms
</td><td>
2
531
</td><td>
1944
</td><td>
4019
</td><td>
3163
</td><td>
3295
</td></tr>
<tr><td>
Simple: Query (sequential)
</td><td>
ms
</td><td>
2
1841
</td><td>
18699
</td><td>
42347
</td><td>
30774
</td><td>
32611
</td></tr>
<tr><td>
Simple: Update (
random)
</td><td>
ms
</td><td>
1862
</td><td>
2486
</td><td>
13929
</td><td>
4404
</td><td>
4391
</td></tr>
<tr><td>
Simple: Update (
sequential)
</td><td>
ms
</td><td>
6913
</td><td>
7745
</td><td>
28576
</td><td>
32698
</td><td>
11350
</td></tr>
<tr><td>
Simple: Delete (sequential)
</td><td>
ms
</td><td>
778
</td><td>
1118
</td><td>
7032
</td><td>
1682
</td><td>
1882
</td></tr>
<tr><td>
Simple: Delete (sequential)
</td><td>
ms
</td><td>
8051
</td><td>
9751
</td><td>
42202
</td><td>
44480
</td><td>
16555
</td></tr>
<tr><td>
Simple: Memory Usage
</td><td>
MB
</td><td>
8
</td><td>
14
</td><td>
18
</td><td>
1
</td><td>
2
</td></tr>
<tr><td>
Simple: Memory Usage
</td><td>
MB
</td><td>
22
</td><td>
11
</td><td>
9
</td><td>
0
</td><td>
1
</td></tr>
<tr><td>
BenchA: Init
</td><td>
ms
</td><td>
12
64
</td><td>
1686
</td><td>
2734
</td><td>
2867
</td><td>
3225
</td></tr>
<tr><td>
BenchA: Init
</td><td>
ms
</td><td>
12
996
</td><td>
14720
</td><td>
24722
</td><td>
26375
</td><td>
26060
</td></tr>
<tr><td>
BenchA: Transactions
</td><td>
ms
</td><td>
5998
</td><td>
6829
</td><td>
14323
</td><td>
11491
</td><td>
10571
</td></tr>
<tr><td>
BenchA: Transactions
</td><td>
ms
</td><td>
10134
</td><td>
10250
</td><td>
18452
</td><td>
21453
</td><td>
15877
</td></tr>
<tr><td>
BenchA: Memory Usage
</td><td>
MB
</td><td>
9
</td><td>
18
</td><td>
14
</td><td>
1
</td><td>
2
</td></tr>
<tr><td>
BenchA: Memory Usage
</td><td>
MB
</td><td>
13
</td><td>
15
</td><td>
9
</td><td>
0
</td><td>
1
</td></tr>
<tr><td>
BenchB: Init
</td><td>
ms
</td><td>
5571
</td><td>
7553
</td><td>
11636
</td><td>
12226
</td><td>
12553
</td></tr>
<tr><td>
BenchB: Init
</td><td>
ms
</td><td>
15264
</td><td>
16889
</td><td>
28546
</td><td>
31610
</td><td>
29747
</td></tr>
<tr><td>
BenchB: Transactions
</td><td>
ms
</td><td>
1931
</td><td>
3417
</td><td>
3435
</td><td>
2407
</td><td>
2149
</td></tr>
<tr><td>
BenchB: Transactions
</td><td>
ms
</td><td>
3017
</td><td>
3376
</td><td>
1842
</td><td>
2771
</td><td>
1433
</td></tr>
<tr><td>
BenchB: Memory Usage
</td><td>
MB
</td><td>
1
8
</td><td>
16
</td><td>
13
</td><td>
2
</td><td>
2
</td></tr>
<tr><td>
BenchB: Memory Usage
</td><td>
MB
</td><td>
1
7
</td><td>
12
</td><td>
11
</td><td>
1
</td><td>
1
</td></tr>
<tr><td>
BenchC: Init
</td><td>
ms
</td><td>
1
333
</td><td>
968
</td><td>
1769
</td><td>
1693
</td><td>
2645
</td></tr>
<tr><td>
BenchC: Init
</td><td>
ms
</td><td>
1
4020
</td><td>
10407
</td><td>
17655
</td><td>
19520
</td><td>
17532
</td></tr>
<tr><td>
BenchC: Transactions
</td><td>
ms
</td><td>
6508
</td><td>
4330
</td><td>
7910
</td><td>
7564
</td><td>
6108
</td></tr>
<tr><td>
BenchC: Transactions
</td><td>
ms
</td><td>
5076
</td><td>
3160
</td><td>
6411
</td><td>
6063
</td><td>
4530
</td></tr>
<tr><td>
BenchC: Memory Usage
</td><td>
MB
</td><td>
1
2
</td><td>
21
</td><td>
14
</td><td>
2
</td><td>
2
</td></tr>
<tr><td>
BenchC: Memory Usage
</td><td>
MB
</td><td>
1
9
</td><td>
21
</td><td>
11
</td><td>
1
</td><td>
1
</td></tr>
<tr><td>
Executed statements
</td><td>
#
</td><td>
322929
</td><td>
322929
</td><td>
322929
</td><td>
322929
</td><td>
322929
</td></tr>
<tr><td>
Executed statements
</td><td>
#
</td><td>
1930995
</td><td>
1930995
</td><td>
1930995
</td><td>
1930995
</td><td>
1930995
</td></tr>
<tr><td>
Total time
</td><td>
ms
</td><td>
32106
</td><td>
34546
</td><td>
74245
</td><td>
53791
</td><td>
5321
6
</td></tr>
<tr><td>
Total time
</td><td>
ms
</td><td>
117049
</td><td>
114777
</td><td>
244803
</td><td>
249215
</td><td>
18844
6
</td></tr>
<tr><td>
Statements per second
</td><td>
#
</td><td>
1
0058
</td><td>
9347
</td><td>
4349
</td><td>
6003
</td><td>
6068
</td></tr>
<tr><td>
Statements per second
</td><td>
#
</td><td>
1
6497
</td><td>
16823
</td><td>
7887
</td><td>
7748
</td><td>
10246
</td></tr>
</table>
</table>
<h3>
Benchmark Results and Comments
</h3>
<h3>
Benchmark Results and Comments
</h3>
<h4>
H2
</h4>
<h4>
H2
</h4>
<p>
<p>
Version 1.
2.137 (2010-06-06
) was used for the test.
Version 1.
4.177 (2014-04-11
) was used for the test.
For most operations, the performance of H2 is about the same as for HSQLDB.
For most operations, the performance of H2 is about the same as for HSQLDB.
One situation where H2 is slow is large result sets, because they are buffered to
One situation where H2 is slow is large result sets, because they are buffered to
disk if more than a certain number of records are returned.
disk if more than a certain number of records are returned.
...
@@ -105,14 +105,14 @@ The advantage of buffering is: there is no limit on the result set size.
...
@@ -105,14 +105,14 @@ The advantage of buffering is: there is no limit on the result set size.
<h4>
HSQLDB
</h4>
<h4>
HSQLDB
</h4>
<p>
<p>
Version 2.
0.0
was used for the test.
Version 2.
3.2
was used for the test.
Cached tables are used in this test (
<code>
hsqldb.default_table_type=cached
</code>
),
Cached tables are used in this test (
<code>
hsqldb.default_table_type=cached
</code>
),
and the write delay is 1 second (
<code>
SET WRITE_DELAY 1
</code>
).
and the write delay is 1 second (
<code>
SET WRITE_DELAY 1
</code>
).
</p>
</p>
<h4>
Derby
</h4>
<h4>
Derby
</h4>
<p>
<p>
Version 10.
6.1.0
was used for the test. Derby is clearly the slowest embedded database in this test.
Version 10.
10.1.1
was used for the test. Derby is clearly the slowest embedded database in this test.
This seems to be a structural problem, because all operations are really slow.
This seems to be a structural problem, because all operations are really slow.
It will be hard for the developers of Derby to improve the performance to a reasonable level.
It will be hard for the developers of Derby to improve the performance to a reasonable level.
A few problems have been identified: leaving autocommit on is a problem for Derby.
A few problems have been identified: leaving autocommit on is a problem for Derby.
...
@@ -129,7 +129,7 @@ than half as fast as H2 in default mode.
...
@@ -129,7 +129,7 @@ than half as fast as H2 in default mode.
<h4>
PostgreSQL
</h4>
<h4>
PostgreSQL
</h4>
<p>
<p>
Version
8.4.4
was used for the test.
Version
9.1.5
was used for the test.
The following options where changed in
<code>
postgresql.conf:
The following options where changed in
<code>
postgresql.conf:
fsync = off, commit_delay = 1000
</code>
.
fsync = off, commit_delay = 1000
</code>
.
PostgreSQL is run in server mode.
PostgreSQL is run in server mode.
...
@@ -138,7 +138,7 @@ The memory usage number is incorrect, because only the memory usage of the JDBC
...
@@ -138,7 +138,7 @@ The memory usage number is incorrect, because only the memory usage of the JDBC
<h4>
MySQL
</h4>
<h4>
MySQL
</h4>
<p>
<p>
Version 5.1.
47-community
was used for the test.
Version 5.1.
65-log
was used for the test.
MySQL was run with the InnoDB backend.
MySQL was run with the InnoDB backend.
The setting
<code>
innodb_flush_log_at_trx_commit
</code>
The setting
<code>
innodb_flush_log_at_trx_commit
</code>
(found in the
<code>
my.ini / my.cnf
</code>
file) was set to 0. Otherwise (and by default), MySQL is slow
(found in the
<code>
my.ini / my.cnf
</code>
file) was set to 0. Otherwise (and by default), MySQL is slow
...
...
h2/src/docsrc/html/roadmap.html
浏览文件 @
4ab7caf6
...
@@ -31,6 +31,7 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
...
@@ -31,6 +31,7 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
<h2>
Version 1.4.x: Planned Changes
</h2>
<h2>
Version 1.4.x: Planned Changes
</h2>
<ul><li>
Change license to MPL 2.0.
<ul><li>
Change license to MPL 2.0.
</li><li>
Automatic migration from 1.3 databases to 1.4.
</li><li>
Automatic migration from 1.3 databases to 1.4.
</li><li>
Option to disable the file name suffix somehow (issue 447).
</li></ul>
</li></ul>
<h2>
Priority 1
</h2>
<h2>
Priority 1
</h2>
...
...
h2/src/docsrc/html/source.html
浏览文件 @
4ab7caf6
...
@@ -13,6 +13,8 @@ Initial Developer: H2 Group
...
@@ -13,6 +13,8 @@ Initial Developer: H2 Group
function
getVersion
(
build
)
{
function
getVersion
(
build
)
{
if
(
build
==
64
)
{
if
(
build
==
64
)
{
return
'1.0/version-1.0.'
+
build
;
return
'1.0/version-1.0.'
+
build
;
}
else
if
(
build
>=
177
)
{
return
'1.4.'
+
build
;
}
else
if
(
build
>=
146
&&
build
!=
147
)
{
}
else
if
(
build
>=
146
&&
build
!=
147
)
{
return
'1.3.'
+
build
;
return
'1.3.'
+
build
;
}
else
if
(
build
>=
120
)
{
}
else
if
(
build
>=
120
)
{
...
...
h2/src/docsrc/html/sourceError.html
浏览文件 @
4ab7caf6
...
@@ -40,6 +40,8 @@ input {
...
@@ -40,6 +40,8 @@ input {
function
getVersion
(
build
)
{
function
getVersion
(
build
)
{
if
(
build
==
64
)
{
if
(
build
==
64
)
{
return
'1.0/version-1.0.'
+
build
;
return
'1.0/version-1.0.'
+
build
;
}
else
if
(
build
>=
177
)
{
return
'1.4.'
+
build
;
}
else
if
(
build
>=
146
&&
build
!=
147
)
{
}
else
if
(
build
>=
146
&&
build
!=
147
)
{
return
'1.3.'
+
build
;
return
'1.3.'
+
build
;
}
else
if
(
build
>=
120
)
{
}
else
if
(
build
>=
120
)
{
...
...
h2/src/tools/org/h2/build/Build.java
浏览文件 @
4ab7caf6
...
@@ -39,18 +39,18 @@ public class Build extends BuildBase {
...
@@ -39,18 +39,18 @@ public class Build extends BuildBase {
* Run the benchmarks.
* Run the benchmarks.
*/
*/
public
void
benchmark
()
{
public
void
benchmark
()
{
downloadUsingMaven
(
"ext/hsqldb-2.
0.0
.jar"
,
downloadUsingMaven
(
"ext/hsqldb-2.
3.2
.jar"
,
"
hsqldb"
,
"hsqldb"
,
"2.0.0
"
,
"
org/hsqldb"
,
"hsqldb"
,
"2.3.2
"
,
"
c9d525ce1a464185e6b01c7de872127a06092673
"
);
"
970fd7b8f635e2c19305160459649569655b843c
"
);
downloadUsingMaven
(
"ext/derby-10.
6.1.0
.jar"
,
downloadUsingMaven
(
"ext/derby-10.
10.1.1
.jar"
,
"org/apache/derby"
,
"derby"
,
"10.
6.1.0
"
,
"org/apache/derby"
,
"derby"
,
"10.
10.1.1
"
,
"0
1137cd636b0e3c22f0d273478adb58aa30e984a
"
);
"0
9f6f910f0373adc1b23c10f9b4bb151b7e7449f
"
);
downloadUsingMaven
(
"ext/derbyclient-10.
6.1.0
.jar"
,
downloadUsingMaven
(
"ext/derbyclient-10.
10.1.1
.jar"
,
"org/apache/derby"
,
"derbyclient"
,
"10.
6.1.0
"
,
"org/apache/derby"
,
"derbyclient"
,
"10.
10.1.1
"
,
"
e7c6fbaca2ef4dbcad27fa7d8a9cd1ac0d1e4b00
"
);
"
42d5293b4ac5c5f082583c3564c10f78bd34a4cb
"
);
downloadUsingMaven
(
"ext/derbynet-10.
6.1.0
.jar"
,
downloadUsingMaven
(
"ext/derbynet-10.
10.1.1
.jar"
,
"org/apache/derby"
,
"derbynet"
,
"10.
6.1.0
"
,
"org/apache/derby"
,
"derbynet"
,
"10.
10.1.1
"
,
"
d5d9d7b783eeaef016be85c34d5c65d1e7cec764
"
);
"
912b08dca73663d4665e09cd317be1218412d93e
"
);
downloadUsingMaven
(
"ext/postgresql-8.3-603.jdbc3.jar"
,
downloadUsingMaven
(
"ext/postgresql-8.3-603.jdbc3.jar"
,
"postgresql"
,
"postgresql"
,
"8.3-603.jdbc3"
,
"postgresql"
,
"postgresql"
,
"8.3-603.jdbc3"
,
"33d531c3c53055ddcbea3d88bfa093466ffef924"
);
"33d531c3c53055ddcbea3d88bfa093466ffef924"
);
...
@@ -62,10 +62,10 @@ public class Build extends BuildBase {
...
@@ -62,10 +62,10 @@ public class Build extends BuildBase {
String
cp
=
"temp"
+
String
cp
=
"temp"
+
File
.
pathSeparator
+
"bin/h2"
+
getJarSuffix
()
+
File
.
pathSeparator
+
"bin/h2"
+
getJarSuffix
()
+
File
.
pathSeparator
+
"ext/hsqldb.jar"
+
File
.
pathSeparator
+
"ext/hsqldb.jar"
+
File
.
pathSeparator
+
"ext/hsqldb-2.
0.0
.jar"
+
File
.
pathSeparator
+
"ext/hsqldb-2.
3.2
.jar"
+
File
.
pathSeparator
+
"ext/derby-10.
6.1.0
.jar"
+
File
.
pathSeparator
+
"ext/derby-10.
10.1.1
.jar"
+
File
.
pathSeparator
+
"ext/derbyclient-10.
6.1.0
.jar"
+
File
.
pathSeparator
+
"ext/derbyclient-10.
10.1.1
.jar"
+
File
.
pathSeparator
+
"ext/derbynet-10.
6.1.0
.jar"
+
File
.
pathSeparator
+
"ext/derbynet-10.
10.1.1
.jar"
+
File
.
pathSeparator
+
"ext/postgresql-8.3-603.jdbc3.jar"
+
File
.
pathSeparator
+
"ext/postgresql-8.3-603.jdbc3.jar"
+
File
.
pathSeparator
+
"ext/mysql-connector-java-5.1.6.jar"
;
File
.
pathSeparator
+
"ext/mysql-connector-java-5.1.6.jar"
;
StringList
args
=
args
(
"-Xmx128m"
,
StringList
args
=
args
(
"-Xmx128m"
,
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论