DM8 是达梦数据库有限公司推出的新一代高性能数据库产品。它具有开放的、可扩展的体系结构,易于使用的事务处理系统,以及低廉的维护成本,是达梦公司完全自主开发的产品。DM8 以 RDBMS 为核心,以 SQL 为标准,是一个能跨越多种软硬件平台、具有大型数据综合管理能力的、高效稳定的通用数据库管理系统。
数据库访问是数据库应用系统中非常重要的组成部分。DM 作为一个通用数据库管理系统,提供了多种数据库访问接口,包括 ODBC、JDBC、DPI 以及嵌入方式等。本书详细介绍了 DM 的各种访问接口,相应开发环境的配置,以及一些开发用例。
本书的主要读者是从事过数据库应用系统开发,并具有 SQL 使用基础的程序员。
开发一个应用系统,需要对其使用的数据库管理系统所具有的功能、性能、特性有较深入的了解。DM 作为一个通用的数据库管理系统,具有非常丰富的功能和特色。
1.1 功能特性
DM 除了具备一般 DBMS 所应具有的基本功能外,还特别具有以下特性:
- 通用性;
- 高性能;
- 高安全性;
- 高可靠、高可用性;
- 易用性;
- 海量数据存储和管理;
- 全文索引;
- 对存储模块的支持;
- 对 WEB 应用的支持。
以下对这些特性做具体介绍。
1.1.1 通用性
DM 是大型通用数据库管理系统,其通用性主要表现在以下四个方面:
1. SQL 及接口的开发符合国际通用标准
符合 SQL92/SQL99、ODBC、JDBC、PHP、.NETProvider 等国际标准或行业标准,提供所有数据库标准接口;
支持 SQL92 标准的所有数据类型;
SQL92 入门级标准符合率达到 100%,过渡级也达到 100%;
提供了符合 ODBC 3.0 标准的 ODBC 接口驱动程序和符合 JDBC 3.0 标准的 JDBC 接口驱动程序。
支持 eclipse、JBuilder、Visual Studio、Delphi、C++Builder、PowerBuilder 等各种流行的数据库应用开发工具。
此外,为了提高数据库的通用性,DM 还增加了一些其他数据库的数据类型、函数和语法等特性,与国外数据库管理系统(如 Oracle、SQLServer 等)高度兼容,如:同时支持自增列和序列。而且从数据库市场现状和技术人员开发习惯的角度出发,注重在功能扩展、函数配备、调用接口及调用方式等方面尽量与国际主流的各类数据库产品接轨,提高应用系统的可移植性和可重用性,降低开发厂商移植和升级的工作难度和强度。
2. 跨平台支持
DM 服务器内核采用一套源代码实现了对不同软件(WINDOWS/LINUX/UNIX/AIX/SOLARIS 等)、硬件(X64/X86/SPARC/POWER/TITAM)平台的支持,各种平台上的数据存储结构完全一致。与此同时,各平台的消息通信结构也完全保持一致,使得达梦数据库的各种组件均可以跨不同的软、硬件平台与数据库服务器进行交互。
DM 支持 WINDOWS 2000/XP/2003、2.4 及 2.4 以上内核的 LINUX(Redhat、Debian、Suse、红旗、中标等)、麒麟操作系统(Kylin)、AIX、SOLARIS 等国内外常用操作系统。
DM 的管理工具、应用开发工具集使用 Java 编写,从而可以跨平台工作,即同一程序无需重新编译,将其执行码拷贝到任一种操作系统平台上都能直接运行。这也保证了它们在各种操作系统平台上都有统一的界面风格。
DM 产品采用一致的人机交互界面,既有易于操作使用的图形化界面工具,也有丰富的命令行控制台工具。
3. 支持对称多处理机系统
由于 DM 核心系统的多线程机制利用了操作系统的线程调度,因此系统的工作线程在单 CPU 和多 CPU 机器上都能很好地并行操作。对于多 CPU 的系统,只要采用的操作系统支持多 CPU 机制,DM 就能很好地实现多 CPU 协同工作。
4. 对 UNICODE 的支持
目前 DM 系统支持了 Unicode 字符集和其他多种字符集。用户可以在安装 DM 系统时,指定服务器端使用 UTF8 字符集。此时在客户端,用户能够以各种字符集存储文本,并使用系统提供的接口设置客户端使用的字符集,缺省使用客户端操作系统缺省的字符集。客户端和服务器端的字符集由用户指定后,所有字符集都可以透明地使用,系统负责不同字符集之间的自动转换。
对 Unicode 的支持使 DM 系统适应国际化的需要,增强了 DM 的通用性。
1.1.2 高性能
DM 主要通过以下机制实现了系统的高性能:
1. 可配置的多工作线程处理功能
DM 允许用户配置工作线程的数目。工作线程是整个系统所公用的资源,不专门为某个特定的连接服务。如果某个数据库操作由于无法取得相应的资源(如锁)而不能继续,将暂停当前的数据库事务,相应的工作线程会立即执行其它的数据库请求服务。所以,在系统硬件及操作系统性能够满足要求的情况下,连接数和任务请求数的增加对 DM 性能的影响是线性的。DM 自动协调工作线程对内存、数据页等物理资源的共享。
2. 高效的并发控制机制
DM 提供了数据库的行级和表级的资源封锁机制,大大提高了事务并发访问的数目。DM 通过以下几点确保并发控制的高效:
- 用 HASH 表管理实现锁管理,能够在系统成千上万的锁中迅速地找到所需的锁;
- 利用回滚段保存记录修改前的数据,实现数据的读一致性。
另外,在 DM 中,当对数据页进行操作时,系统会自动对数据页采用合适的封锁机制。同时,DM 也提供了函数供用户自行定义锁定类型,以增强系统并发度,提高系统效率。
3. 有效的查询优化策略
DM 采用有效的基于代价的查询优化策略,其查询优化子系统能计算最优的查询路径以保证查询的执行效率。查询优化主要通过以下三个步骤进行:
1)SQL 转换:DM 首先对用户输入的查询语句进行一系列复杂的转换,其结果为一个语义 上等价但处理起来更为有效的 SQL 语句;
2)统计信息与代价估计:DM 为数据库对象保存了一系列的统计信息,代价估计模块基于 系统的 I/O、CPU 和内存等资源情况和数据库对象的统计信息估算每个计划的代价;
3)执行计划选择:执行计划描述了查询语句的每一个处理步骤,如以什么算法执行连 接,是否使用索引等。优化器考虑可能的执行计划,并选择代价最小的交付执行。
另外,用户可通过 DM 的客户端工具查看查询语句的执行计划。
4. 尽可能少的网络通讯量
DM 对消息发送条件进行仔细判断,避免和减少无用的网络交互,提高了消息处理的效率,减轻了服务器的负担,降低了等待时间,加速了工作线程的运转,提高了性能。对于密集型联机事务处理效果尤佳。
5. 加强的缓冲机制
DM 为了提高系统运行效率,对于频繁操作的对象进行了必要的缓存处理,实现了数据字典高速缓冲,实现了语法分析树的可重用,优化了存储过程和触发器的运行。
与此同时,DM 还新增了动态缓冲区机制。当数据库服务器发现因为缓冲区不足而产生频繁的缓冲区页面淘汰时,如果整个系统还有可用内存,则 DM 会自动扩展缓冲区,减少淘汰几率,显著提升系统性能。
6. 针对 64 位计算的优化策略和技术
DM 在代码级全面支持 64 位系统,能够支持主流 64 位处理机和操作系统,并融入了很多针对 64 位计算的优化策略和技术。DM 不仅能够运行在 64 位系统上,还能很好地利用 64 位系统的资源(例如能充分地利用更大容量的内存),在 64 位系统上表现出良好的性能。
7. 查询计划重用
DM 在首次执行 SQL 语句过程中会在内存中创建一个计划缓冲池,缓存执行过的 SQL 语句、存储过程以及触发器的执行计划。对于后续接收到的 SQL 命令,系统自动采用字符串全字匹配的方式,在计划池中查找对应的计划,如果有则直接使用,否则对该语句进行分析,创建执行计划,并将执行计划放入计划缓冲池中。通过这种方式,系统可以极大地节省对语句进行分析和创建执行计划的时间,从而提升系统性能。
8. 查询结果集缓存
DM 还支持查询结果的缓存功能。查询语句第一次执行后,系统可以把结果保存下来,如果后面有同样的语句,且所访问的数据没有发生变化,则不需要进行计算,直接把先前保存的结果返回给客户即可。在很多以查询为主的系统中,采用该功能性能可以得到成倍地提升。
9. 数据压缩
DM 新增了数据压缩的功能,用户可以对整个表进行压缩,也可以选择对部分字段进行压缩。对于 I/O 密集型的系统来说,通过采取适当的数据压缩的策略,可以减少系统的 I/O 量,在 I/O 子系统是整个系统的瓶颈时,采取该措施可以有效提升系统性能。
10. 函数索引
DM 扩充了索引的建立方法,允许在表达式上面建立索引。表达式既可以出现在函数的参数中(如 ABS(ID)),也可以是列的操作(如 C1+C2),DM 把这类索引称为函数索引。函数索引的引入为 DBA 提供了一种新的优化手段。
例如,执行如下的语句:SELECT * FROM t WHERE UPPER(name) = ‘CBDG’;在以往的版本中,这条语句的执行只能是全表扫描。如果建立如下索引:CREATE INDEX i_t_fbi_name ON t(UPPER(name));则可以通过函数索引 i_t_fbi_name,进行等值扫描,性能获得大幅提升。
1.1.3 高安全性
只具备自主访问控制安全机制的数据库远不能满足一些对安全具有高要求的系统的需要。为了保证系统的安全性,DM 采用基于角色与权限的管理方法来实现基本安全功能,并根据三权分立的安全机制,将审计和数据库管理分别处理,同时增加了强制访问控制功能,另外,还实现了包括通讯加密、存储加密以及资源限制等辅助安全功能,使得达梦数据库安全级别达到 B1 级。
1. 完全自主知识产权
达梦数据库是具有完全自主知识产权的国产大型数据库管理系统。在产品开发过程中,达梦公司始终坚持自主开发的原则,致力于保卫国家信息安全,推进国民经济信息化建设,拥有产品的全部源代码和完全的自主版权。这一方面杜绝了继承开源系统导致的版权纠纷,同时也从根本上保证了系统的安全性,并有利于与其它应用系统集成,可以根据具体需求定制和提供及时有效的服务。
2. 三权分立的安全机制
DM 在安全管理方面采用了三权分立的安全管理体制,把系统管理员分为数据库管理员 DBA、数据库安全管理员 SSO、数据库审计员 AUDITOR 三类。DBA 负责自主访问控制及系统维护与管理方面的工作,SSO 负责强制访问控制,AUDITOR 负责系统的审计。这种管理体制真正做到三权分立,各行其责,相互制约,更好地实现了数据的保密性、完整性和可用性。
3. 身份验证
DM 能够根据用户在系统中的登录名和密码确定该用户是否具有登录的权限和其在系统中的系统级角色,确定该用户能够做什么和不能够做什么。DM 提供数据库身份验证模式、基于操作系统的身份验证模式、外部身份验证模式和 UKEY 身份验证模式来保护对数据库访问的安全。数据库身份验证模式需要利用数据库口令,即在创建或修改用户时指定用户口令,用户在登录时输入对应口令进行身份验证;基于操作系统的身份验证模式使用当前操作系统的用户名登录数据库,数据库中需要存在当前操作系统的同名用户;外部身份验证模式支持 LDAP 身份验证、SSL 身份验证和 KERBEROS 身份验证。
4. 资源限制
资源限制是控制用户对 DM 服务器系统资源的使用情况,以尽可能减少人为的安全隐患。通过资源限制可以提供一个规划数据库系统资源使用的接口,可以人为地规划数据库资源的分配。这样做对于恶意地抢占资源的访问可以起到有效的遏制,保证普通数据库应用的正常进行,同时资源限制还起到保证身份验证可靠性的作用。
5. 自主访问控制
DM 系统根据用户的权限执行自主访问控制。用户权限是指用户在数据对象上被允许执行的操作。规定用户权限要考虑三个因素:用户、数据对象和操作,即什么用户在哪些数据对象上可执行什么操作。所有的用户权限都要记录在系统表(数据字典)中,对用户存取权限的定义称为授权,当用户提出操作请求时,DM 根据授权情况进行检查,以决定是执行操作还是拒绝执行,从而保证用户能够存取他有权存取的数据,不能存取他无权存取的数据。
6. 基于标记的强制访问控制
DM 利用策略和标记来实现数据库的强制访问机制。强制访问控制主要是针对用户和元组,用户操作元组时,不仅要满足自主访问控制的权限要求,还要满足用户和元组之间标记的相容性。这样,就避免了出现管理权限全部由数据库管理员一人负责的局面,同时也相应地增强了系统的安全性。
7. 数据库审计
审计机制是 DM 数据库管理系统安全管理的重要组成部分之一。DM 具有一个灵活的审计子系统,可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。通过查看审计信息,数据库审计员可以知道用户访问的形式以及试图对该系统进行的操作。一旦出现问题,数据库审计员可分析审计信息,跟踪审计事件,查出原因。
8. 通信加密
DM 提供两种通信方式,即不加密、可选算法的加密通信。选择何种通信方式以服务器端为准,通过设置服务器端配置文件中相应选项来指定,客户端以服务器采用的通信方式与其进行通信。
9. 存储加密
某些信息具有保密要求,实现存储加密的重要性不言而喻。DM 实现了对存储数据的加密,另外,还提供了内置的数据加/解密函数,为用户的隐私数据提供更加可靠的保护。
10. 客体重用
DM 内置的客体重用机制使数据库管理系统能够清扫被重分配的系统资源,以保证数据信息不会因为资源的动态分配而泄露给未授权的用户。
1.1.4 高可靠、高可用性
任何一个系统都存在发生各种意外故障的可能性。DM 的高可靠、高可用性可以避免或降低系统的意外故障对用户带来的损失,主要包括以下几个方面的功能:
1. 数据守护
DM 数据守护(Data Watch)是一种集成化的高可用、高性能数据库解决方案,是数据库异地容灾的首选方案。通过部署 DM 数据守护,可以在硬件故障(如磁盘损坏)、自然灾害(地震、火灾)等极端情况下,避免数据损坏、丢失,保障数据安全,并且可以快速恢复数据库服务,满足用户不间断提供数据库服务的要求。
DM 数据守护提供多种解决方案,可以配置成实时主备、MPP 主备、或读写分离集群,满足用户关于系统可用性、数据安全性、性能等方面的综合需求。
2. 数据共享集群
DM 数据共享集群(DM Data Shared Cluster,简称 DMDSC),允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。
3. 故障恢复措施
数据库的备份与还原是系统容灾的重要方法。备份意味着把重要的数据复制到安全的存储介质上,还原则意味着在必要的时候再把以前备份的数据复制到最初的位置,以保证用户可以访问这样的数据。
DM 数据库管理系统支持的备份方式包括物理备份和 B 树备份。物理备份分为数据库级的备份和用户表空间级的备份;B 树备份分为数据库级的备份和用户表级的备份。为了提高备份恢复的安全性,减少备份文件占用磁盘空间的大小,系统支持对备份数据加密和压缩。
1.1.5 易用性
为了让用户更加容易掌握达梦数据库,DM 提供了大量功能特性来简化系统的使用、管理和维护,具体表现在:
1. 动态缓冲区
DM 提供了动态缓冲区管理机制,可以更加有效地利用系统内存资源,提高服务器灵活性,减轻系统管理员负担,满足各种应用环境的需求。用户可以在服务器启动时仅分配较少的缓冲数据页,或者直接采用缺省的缓冲区配置参数,就可以满足一般的应用需求。当数据库服务器发现因为缓冲区不足而产生频繁的缓冲区页面淘汰时,系统会自动扩展缓冲区,减少淘汰几率。当系统相对空闲时,DM 又会逐步释放扩展的缓冲区空间,直至最初的规模。
2. 同义词
同义词(Synonym)实际就是让用户能够为数据库的一个模式下的对象提供别名,它可以替换模式下的表,视图,序列,函数,存储过程等对象。同义词通过掩盖一个对象真实的名字和拥有者来提供了一定的安全性,同时使用同义词可以简化复杂的 SQL 语句。
3. 动态性能视图
DM8 中提供了动态性能视图功能(一组以 V$开头的系统表)。通过动态性能视图,数据库管理员可以方便地查看当前服务器诸如锁的信息、缓存使用情况、IO 状况等实时性能信息,便于找出系统瓶颈,进行系统优化。
4. Oracle 兼容性
目前,大多数应用程序使用的是 Oracle 数据库,用户或多或少地使用了 Oracle 的一些特殊功能,而这些特殊功能在其他数据库中都未实现。为了方便应用的移植,DM 实现了很多 Oracle 独特的功能和语法,使得多数 Oracle 的应用可以不用修改而直接移植到 DM 上面。Oracle 兼容性方面实现的功能包括:ROWNUM 表达式、多列 IN 语法、层次查询、外连接语法“(+)”、INSTEAD OF 触发器、%TYPE 以及记录类型等。
5. 类型别名
类型别名实际上是为数据类型提供一个更加容易记住和理解的名字,方便用户使用。实际上,各大数据库的部分数据类型名称也不相同,通过创建数据类型的别名,可以为应用系统的移植和数据的迁移提供便利。
6. 执行计划
为了方便用户对 SQL 语句性能进行分析和调整,DM 提供了显示执行计划的功能。
7. 简便的数据库系统安装和配置
- 统一的界面,熟悉的环境
DM 提供一个基于 Java 的安装程序,利用 Java 的跨平台性,可以在 Windows、Unix、Linux、Solaris 等平台上运行,且具有统一界面。这样,无论在什么平台上,它都可以为管理员提供一个简洁的安装界面,熟悉、统一的安装环境。
- 便捷的安装向导
DM 的安装程序把软件安装、数据库初始化和配置结合在一起,一气呵成。
- 配置灵活
DM 为常见应用做了缺省优化配置,用户可以一路“确认”下来,完成安装,也可自行调整。在安装过程中,安装程序提供一个交互界面来初始化数据库,通过 DM 提供的控制台工具,管理员可以方便地根据实际应用配置 DM 数据库的各项参数,从而获得最大的应用性能。详尽的提示信息减少了用户在安装过程中可能出现的问题。通过降低安装的复杂性,简化配置操作,数据库管理员可提高工作效率,普通技术人员也很容易成为数据库系统管理员。
8. 集成的系统管理工具 Manager
DM 系统管理工具 Manager 是管理 DM 数据库系统的图形化工具,类似于 Oracle 和 MS SQLServer 的 Enterprise Manager。Manager 可以帮助系统管理员更直观、更方便地管理和维护 DM 数据库,普通用户也可以通过 Manager 完成对数据库对象的操作。Manager 的管理功能完备,能对 DM 数据库进行较为全面的管理,在不借助其他工具的情况下,能满足系统管理员和用户的常规要求。
同时,管理工具 Manager 还集成了安全管理的功能:
- DM 安全管理员可以通过 Manager 进行标记管理,同时它也为 DM 安全管理员提供了管 理安全管理员以及安全管理员登录的操作界面;
- DM 审计员可以用 Manager 来监视、记录、分析用户对数据库的操作,同时它也为 DM 审计管理员提供了管理审计员以及审计员登录的操作界面。
9. 数据迁移工具 DTS
DM 数据迁移工具 DTS 可跨平台实现数据库之间的数据和结构互导,例如 DM 与 DM 之间、DM 与 ORACLE、MS SQL Server 之间等,也可复制从 SQL 查询中获得的数据,还可实现数据库与文本文件之间的数据或者结构互导。
为了实现与 ORACLE、DB2、SQL Server 等多种主流数据库管理系统的数据交换,DM 提供跨平台的数据迁移工具 DTS。它是一个用纯 Java 编写的基于 JDBC/ODBC 的数据迁移工具,可跨平台实现数据库之间的数据和结构互导,也可复制从 SQL 查询中获得的数据,还可实现数据库与文本文件之间的数据或者结构互导。在迁移的过程中它最大限度地保留了源数据的原始信息(包括源数据的类型、精度、默认值、主键和外键约束等),还支持迁移过程中的数据类型自动转换,关于转换方面的细节问题可由数据迁移工具自动来为您解决,数据库管理员所要做的仅仅是指定需要进行数据迁移的两个数据库的连接参数和所迁移的数据。
DM 良好的数据迁移解决方案为系统移植工作减少了很大一部分工作量,免去系统管理员和开发人员的后顾之忧,能够将更多的精力投入到应用程序的移植上面来。
10. 性能监控工具 Monitor
DM 性能监控工具 Monitor 是 DM 系统管理员用来监视服务器的活动和性能情况的客户端工具。它允许系统管理员在本机或远程监控服务器的运行状况,并根据系统情况对系统参数进行调整,以提高系统效率。
11. 控制台工具 Console
DM 控制台(Console)是数据库管理员(DBA)管理和维护 DM 数据库的基本工具。通过使用 DM 控制台,数据库管理员可以完成修改服务器配置参数,脱机备份与恢复,以及系统信息查看等任务。
12. 命令行控制台工具
为方便批处理、编程使用,大部分功能都提供命令行方式,如交互式工具 DIsql、初始化库工具 dminit、备份恢复工具 dmrman、快速数据装载工具 dmfldr、导入导出工具 dexp/dimp 等。
13. 海量数据存储和管理
DM 的数据存储逻辑上分为 4 个层次:数据库实例、表空间、数据文件、数据块。
DM 每个数据库实例理论上可包含多达 65535 个表空间,每个表空间可包含 256 个数据文件,每个数据文件由若干数据块构成。每个数据文件的大小最大为 32K*4G,因此 DM 最大数据存储容量达到 TB 级(实际上远远超过),足以支持大型应用。
此外,DM 全面支持 64 位计算,极大地扩展了系统支持的数据存储和内存容量,这也有利于满足大型应用对海量数据存储和管理的要求。
14. 全文检索
现有的数据库系统,绝大多数是以结构化数据为检索的主要目标,因此实现相对简单。比如数值检索,可以建立一张排序好的索引表,这样速度可以得到提高。但对于非结构化数据,即全文数据,要想实现检索,一般都是采用模糊查询的方式实现的。这种方式不仅速度慢,而且容易将汉字切分错,于是引入了全文索引技术。
全文检索的主要目的,就是实现对大容量的非结构化数据的快速查找。DM 实现了全文检索功能,它根据已有词库建立全文索引,然后文本查询完全在索引上进行。词库(包括中、英文等多种语言)由单独的软件进行维护和更新。全文索引为在字符串数据中进行复杂的词搜索提供了有效支持。全文索引是解决海量数据模糊查询的较好解决办法。
全文检索支持的检索类型有:
- 支持英文单词的检索(单词不区分大小写)
- 支持全角英文的检索
- 支持中文词语的检索
- 支持常见单个汉字的检索
- 支持中文长句子的检索
- 支持中英文混合的检索
1.1.6 对存储模块的支持
DM 系统允许用户使用 DM 提供的 DMSQL 过程语言创建存储过程或存储函数,通常,我们将存储过程和存储函数统称为存储模块。存储模块运行在服务器端,在功能上相当于客户端的一段 SQL 批处理程序,但是在许多方面有着后者无法比拟的优点,它为用户提供了一种高效率的编程手段,成为现代数据库系统的重要特征。
- 存储模块在执行时数据对用户是不可见的,提高了数据库的安全性;
- 存储模块是一种高效访问数据库的机制,使用存储模块可减少应用对 DM 的调用,降低了系统资源浪费,显著提高性能,尤其是在网络上与 DM 通讯的应用更显著。
1.1.7 对 Web 应用的支持
DM 提供 ODBC 驱动程序,支持 ADO、.NET 应用。支持在 ASP 动态网页中访问 DM。
DM 还提供 PHP 接口,支持 PHP 动态网页技术。
DM 提供符合 JDBC CompliantTM 规范的第四类纯 Java 的 JDBC 驱动程序,可以在以下情形中通过 JDBC 访问 DM:
- 在 Eclipse、JBuilder 等应用开发工具中;
- 在 JavaBeans 组件、EJB 组件中;
- 在 JSP、Applet、Servlet 等基于 Java 的动态网页中。
以上特性使得 DM 适应 Web 应用,用户只用浏览器就可以访问 DM 数据库。
DM 支持 Java 数据对象 JDO(Java Data Objects ),JDO 为对象持久性提供了第一个标准化的、完全面向对象的方法。JDO 简化了用 Java 语言进行数据库编程的复杂性,而且对原始的 Java 源代码的打乱程度最小。
1.2 主要技术指标
- 定长字符串类型(CHAR)字段最大长度 8188 字节。
- 变长字符串类型(VARCHAR)字段最大长度字节 8188 字节。
- 多媒体数据类型字段最大长度(2G-1)字节。
- 一个记录(不含多媒体数据)最大长度为页大小的一半。
- 一个记录中最多字段个数 2048。
- 一个表中最大记录数 256 万亿条。
- 一个表中最大数据容量 4000PB(受操作系统限制)。
- 表名、列名等标识符的最大长度 128 字节。
- 能定义的最大同时连接数为 65000。
- 每个表空间的最多物理文件数目 256 个。
- 物理文件的大小为 32K×4G。
- 数值类型的最高精度为 38 个有效数字。
- 在一个列上允许建立的最多索引数 1020。
- 表上的最大 UNIQUE 索引数为 64。
1.3 连接配置项优先级
接口中有一部分参数是在连接时设置的,这部分参数称为连接配置项。有的连接配置项既可以在接口中调用设置,也可以在 dm_svc.conf 文件中设置。不同接口的连接配置项各不相同。
对于 DPI、ODBC、PROC、dmPython、DM FLDR 接口,如果同一个参数在接口中和在 dm_svc.conf 配置项(全局配置区、服务配置区)中均有设置,但值却不同,则优先顺序为:全局配置区 < 接口设置 < 服务配置区。其中 PROC 请参考《DM8_PROC 使用手册》,dmPython 请参考《DM8_dmPython 使用手册》。
对于 JDBC、.NET Data Provider、GO、PHP、DM DEXP/DIMP JNI、Node.js 、DM XA、msgparse、DM R2DBC 接口,接口连接串中可设置的属性中除了 user 和 password 是必须要设置的,其它属性均为可选项。如果同一个属性在接口中和在 dm_svc.conf 配置项(全局配置区、服务配置区)中均有设置,但值却不同,则优先顺序为:全局配置区 < 服务配置区 < 接口设置。
对于 Logmnr 接口,只需要在接口中设置连接配置项,不涉及 dm_svc.conf 文件设置。