本测试报告基于武汉华工达梦数据库有限公司(以下简称达梦)企业版数据库 DM8 ,安装软件来自达梦公司的官方网站,运行环境为 Windows 10 。由于时间短促以及应用于生产环境时间不长,本报告并未涉及 DM 数据库深层次的技术和性能问题,只就一些简单的使用和相关内容做出初步报告。另外,本报告主要以常用的 Oracle 和 SQL Server 数据库作为比较对象。
一、优点:
1 、软件大小:
相对而言, DM 数据库系统安装软件体积较小,目前的最新版本 DM8 企业版安装镜像(dm8_20220525_x86_rh6_64.iso)大约为 910M , Oracel 11g ( oracle 11g R2 X6 4 )大约为 2.12G , SQL Server2016 ( cn_sql_server_2016_x64.iso )大约为 2.28G 。
2 、安装与卸载:
DM 数据库安装比 Oracle 和 SQL Server 都要简单得多,按照默认模式安装即可,除非有特别需求,基本上不用更改设置。同样, DM 数据库卸载也很简单,并且能够把自身卸载得比较彻底。而 Oracle 卸载比较困难,卸载完毕后会留有一些配置信息,很难进行二次安装。 SQL Server 虽然卸载不困难,但安装过程相对繁琐,检查和配置项较多。
另外, Oracle 数据库在安装时,需要另外配置本地网络服务名, DM 数据库与 SQL Server 类似,在安装过程中或安装完成后直接配置数据库实例即可。
3 、连接使用:
DM 数据库的管理界面跟 SQL Server 高度相似,自身带有一个管理工具( Manager ),对于熟悉 SQL Server 的人员来说很容易上手,可以在其中方便地进行模式、角色、用户、权限、数据表等的创建和维护。而 Oracle 的管理需要使用集成开发调试工具 PL/SQL Developer ,相对来讲不如前两者方便。
在开发环境中, DM 数据库的连接比较简单,跟 SQL Server 相似,一般只需提供数据库服务器的 IP 地址、用户名、密码三项内容即可,形如“ Server=IP; User Id=xxx; PWD=xxxxx ”。 Oracle 稍有不同,需要提供数据源( data source ),即单独配置的网络服务名。
4 、兼容性:
DM 数据库有良好的兼容性,对于 Oracle 和 SQL Server 用户来说,都有似曾相识的感觉。尤其是与 Oracle 高度兼容,后者的函数、变量类型基本上可以直接应用于 DM 数据库。
作为兼容性的一个例子,对于常用的数据库自增列, DM 数据库既支持像 SQL Server 中的定义方式:
"ID" INT IDENTITY(1, 1) NOT NULL
也支持像 Oracle 在序列( Sequences )中单独定义。这样,既方便了新建数据库时自增列的定义,又保证了 Oracle 中原有数据库向 DM 数据库的无损迁移。
5 、安全性:
DM 数据库有较高的安全性,从架构方面说,采用了数据库“三权分立”的安全机制,其安全级别达到国际标准 B1 级,能从根本上保证数据的安全。简单地说,就是把系统管理员分为数据库管理员( DBA )、数据库安全管理员( SSO )、数据库审计员( AUDITOR )三类,其软件系统程序也相应的分成了这三类。 DBA 负责自主访问控制及系统维护与管理方面的工作, SSO 负责强制访问控制, AUDITOR 负责系统的审计。该管理程序可做到 “ 三权分立 ” ,各行其责,相互制约,从而保证数据库的安全性。
另外,在创建数据表的字段时,可以直接设置列的加密属性,配置项包括加密模式(透明、半透明)、加密算法( DES 、 AES 等)、散列算法( MAD 、 SHA )等, 这些加密配置可以在创建数据表时定义,也可以在数据表建成后另行定义。
二、不足:
1 、字段数据类型:
出于跟其他数据库兼容性的考虑, DM 数据库字段可定义的数据类型过多,显得比较乱。作为对比,粗略统计, Oracle 大约有 18 种数据类型,而 DM 数据库则有 49 种之多。尤其是数值类型, DM 数据的数值类型过于纷杂,有些根本没有必要。不过正像前面说的,保留的目的可能是为了跟其他数据库系统的兼容。
说句题外话,达梦设置这么多数据类型,似乎显得有些自信心不足,把大大小小的数据库系统都照顾到,即无必要,也把自己弄得杂乱。
2 、大小写敏感:
DM 数据库安装过程中,有一个“字符串比较大小写敏感”的选项,默认选中。如果不更改,在数据表的字段名定义时,要注意采用大写字符,如果采用小写字母,在进行读写操作时,由于大小字母的不同,可能会出现找不到字段的情况,此时就需要加上双引号,书写不大方便。
关于这一点, Oracle 做得比较好,不管字段名定义时键盘是否处于大写模式,均自动转换为大写字母,从而避免了后续使用数据库时可能出现的非法字段名错误。
3 、数据库性能:
总体来说, DM 数据库系统在稳定性、高可用性方面比 Oracle 和 SQL Server 稍逊一些,比如 Oracle 数据系统具有网格计算功能以提高应用系统的服务水平、减少停机时间以及更加有效地利用 IT 资源;利用自学习功能自动进行 SQL 优化系统全局变量( SGA )和程序全局变量( PGA )等。
4 、数据库生态:
DM 数据库的市场占有量无法跟 Oracle 和 SQL Server 相提并论,其数据库生态也有待建 全和扩大,用户在使用过程中遇到问题时,资料的查找和解答的便利性和丰富性方面不如后两者。不过 DM 数据库在售后服务和响应速度、费用等方面要更有优势,对用户来说这一点比较重要。
三、性能测试:
此处所说的性能测试,主要考察 Oracle 、 SQL Server 和 DM 三个数据库系统在进行大批量的数据读写操作时所耗费的时间,从而简单地对这三个数据库的响应速度进行粗略地比较。当然,这种比较必须在相同的软硬件配置和环境下进行。
以下是对三个数据库进行读写操作的测试数据(单位:秒):
数据库 |
Oracle |
SQL Server |
DM | |
写
|
1 |
27.17 |
21.03 |
17.64 |
2 |
29.45 |
19.52 |
17.3 | |
3 |
29.02 |
20.05 |
18.14 | |
平均 |
28.55 |
20.20 |
17.69 | |
读
|
1 |
4.84 |
2.1 |
3.43 |
2 |
4.88 |
2.09 |
3.47 | |
3 |
4.85 |
2.09 |
3.36 | |
平均 |
4.86 |
2.09 |
3.42 |
需要说明的是,上述测试只是简单的数据库读写操作,其中写操作采用单步循环的方式,未进行 SQL 语句的优化处理。为保证相对准确,读写操作均以同样的方式运行三次。
上述测试并不能完全反映数据库的性能,不过大体可以看出,在一般的应用场景下, DM 数据库的读写性能并不比其他数据库差。另外,从测试数据也可以看出, Oracle 数据库对硬件资源要求较高,在配置较低的情况下,其数据读写性能反而不如另外两个数据库。
有关测试采用的软件硬件环境如下:
硬件平台:联想笔记本电脑,内存 8G , CPU : Intel i5-8250U 。
操作系统: Windows 10 企业版。
测试软件:基于 C# 开发的数据库读写程序。
数据库: Oracle 11g , Sql Server2012 标准版, DM 8 企业版。
数据表:共 8 个字段,字段类型包括整型、字符型、日期型、浮点型、字节型。