首页 达梦数据库DM8程序员手册-D

达梦数据库DM8程序员手册-D

举报
开通vip

达梦数据库DM8程序员手册-D达梦数据库PROGRAMMERMANUAL程序员手册I目录目录III第1章概述1功能特性1通用性1高性能2高安全性4高可靠、高可用性5易用性6对存储模块的支持9对Web应用的支持9主要技术指标9第2章DPI编程指南112.1基础简介112.2进阶14函数原型21编程参考70数据捕获100数据类型101相关方法101数据信息搜集表103举例说明104第3章DMODBC编程指南107数据类型107支持的函数108连接到数据源109获取驱动程序和数据源信息109设置或者获取驱动程序属性110设置或者获取描述符字段110准...

达梦数据库DM8程序员手册-D
达梦数据库PROGRAMMERMANUAL程序员手册I目录目录III第1章概述1功能特性1通用性1高性能2高安全性4高可靠、高可用性5易用性6对存储模块的支持9对Web应用的支持9主要技术指标9第2章DPI编程 指南 验证指南下载验证指南下载验证指南下载星度指南下载审查指南PDF 112.1基础简介112.2进阶14函数原型21编程参考70数据捕获100数据类型101相关方法101数据信息搜集表103举例说明104第3章DMODBC编程指南107数据类型107支持的函数108连接到数据源109获取驱动程序和数据源信息109设置或者获取驱动程序属性110设置或者获取描述符字段110准备SQL语句110提交SQL请求110检索结果集及其相关信息110取得数据源系统表的信息111终止语句执行111中断连接112建立ODBC连接112申请环境与连接句柄112如何与数据源进行连接113设置与取得连接的属性115断开与数据源之间的连接115ODBC应用程序编程的基本步骤117Windows上创建ODBC数据源117Linux上创建ODBC数据源121ODBC应用程序编写的基本步骤123使用存储过程和函数126存储过程与函数字典信息的获取126存储模块的创建127存储模块的调用127第4章DMJDBC编程指南130JDBC介绍130JDBC基本示例130DMJDBC特性138DMJDBC扩展139数据类型扩展139读写分离集群下的错误信息140建立JDBC连接140通过DriverManager建立连接141创建JDBC数据源142数据源与连接池143DM扩展连接属性的使用143Statement/PreparedStatement/CallableStatement146Statement146PreparedStatement148CallableStatement150ResultSet152流与大对象155Stream使用155LOB对象使用1574.9元数据158ResultSetMetaData158DatabaseMetaData158ParameterMetaData159RowSet160CachedRowSet160JdbcRowSet161分布式事务支持162XADataSource162XAConnection162XAResource1634.11.4Xid1644.11.5实例解析164第5章.NETDataProvider编程指南166数据类型166提供的对象和接口167DmConnection对象167DmCommand对象168DmDataAdapter对象169DmDataReader对象169DmParameter对象170DmParameterCollection对象171DmTransaction对象171DmCommandBuilder对象171DmConnectionStringBuilder对象172DmClob对象172DmBlob对象172注册.NET驱动173NhibernateDm方言包1745.5.NETDataProvider基本示例1745.6对象使用1765.6.1连接176查询与结果集176插入、更新、删除1765.6.4大对象1785.6.5自增列1805.6.6存储过程与函数180第6章DMPHP编程指南183DMPHP介绍183基本示例184DMPHP模块加载187编程接口189第7章DMDCI编程指南199DMDCI介绍199数据类型199参考函数200关系型接口函数200使用DMDCI编程基本步骤242第8章DMFLDR编程指南249DMFLDR接口介绍249DMFLDR接口说明249返回值说明249接口说明249编程实例258第9章DMFLDRJNI编程指南260DMFLDRJNI接口介绍260接口说明260DMFLDRJNI编程实例264第10章Logmnr接口使用说明270JNI接口270接口说明270编程实例27510.2C接口277接口说明277编程实例283附录1错误码汇编285DM服务器错误码汇编285DPI错误码汇编285OCI错误码汇编288OCCI错误码汇编292附录2DM技术支持294第1章概述DM8是达梦数据库有限公司推出的新一代高性能数据库产品。它具有开放的、可扩展的体系结构,易于使用的事务处理系统,以及低廉的维护成本,是达梦公司完全自主开发的产品。DM8以RDBMS为核心,以SQL为 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 ,是一个能跨越多种软硬件平台、具有大型数据综合管理能力的、高效稳定的通用数据库管理系统。数据库访问是数据库应用系统中非常重要的组成部分。DM作为一个通用数据库管理系统,提供了多种数据库访问接口,包括ODBC、JDBC、DPI、OLEDB以及嵌入方式等。本书详细介绍了DM的各种访问接口,相应开发环境的配置,以及一些开发用例。本书的主要读者是从事过数据库应用系统开发,并具有SQL使用基础的程序员。开发一个应用系统,需要对其使用的数据库管理系统所具有的功能、性能、特性有较深入的了解。DM作为一个通用的数据库管理系统,具有非常丰富的功能和特色。功能特性DM除了具备一般DBMS所应具有的基本功能外,还特别具有以下特性:通用性;高性能;高安全性;高可靠、高可用性;易用性;海量数据存储和管理;全文索引;对存储模块的支持;对WEB应用的支持。以下对这些特性做具体介绍。通用性DM是大型通用数据库管理系统,其通用性主要表现在以下四个方面:SQL及接口的开发符合国际通用标准符合SQL92/SQL99、ODBC、JDBC、OLEDB、PHP、.NETProvider等国际标准或行业标准,提供所有数据库标准接口;支持SQL92标准的所有数据类型;SQL92入门级标准符合率达到100%,过渡级也达到100%;提供了符合ODBC3.0标准的ODBC接口驱动程序、符合JDBC3.0标准的JDBC接口驱动程序和符合OLEDB2.7标准的OLEDB接口驱动程序。支持eclipse、JBuilder、VisualStudio、Delphi、C++Builder、PowerBuilder等各种流行的数据库应用开发工具。此外,为了提高数据库的通用性,DM还增加了一些其他数据库的数据类型、函数和语第1章概述1法等特性,与国外数据库管理系统(如Oracle、SQLServer等)高度兼容,如:同时支持自增列和序列。而且从数据库市场现状和技术人员开发习惯的角度出发,注重在功能扩展、函数配备、调用接口及调用方式等方面尽量与国际主流的各类数据库产品接轨,提高应用系统的可移植性和可重用性,降低开发厂商移植和升级的工作难度和强度。跨平台支持DM服务器内核采用一套源代码实现了对不同软件(WINDOWS/LINUX/UNIX/AIX/SOLARIS等)、硬件(X64/X86/SPARC/POWER/TITAM)平台的支持,各种平台上的数据存储结构完全一致。与此同时,各平台的消息通信结构也完全保持一致,使得达梦数据库的各种组件均可以跨不同的软、硬件平台与数据库服务器进行交互。DM支持WINDOWS2000/XP/2003、2.4及2.4以上内核的LINUX(Redhat、Debian、Suse、红旗、中标等)、麒麟操作系统(Kylin)、AIX、SOLARIS等国内外常用操作系统。DM的管理工具、应用开发工具集使用Java编写,从而可以跨平台工作,即同一程序无需重新编译,将其执行码拷贝到任一种操作系统平台上都能直接运行。这也保证了它们在各种操作系统平台上都有统一的界面风格。DM产品采用一致的人机交互界面,既有易于操作使用的图形化界面工具,也有丰富的命令行控制台工具。支持对称多处理机系统由于DM核心系统的多线程机制利用了操作系统的线程调度,因此系统的工作线程在单CPU和多CPU机器上都能很好地并行操作。对于多CPU的系统,只要采用的操作系统支持多CPU机制,DM就能很好地实现多CPU协同工作。对UNICODE的支持目前DM系统支持了Unicode字符集和其他多种字符集。用户可以在安装DM系统时,指定服务器端使用UTF8字符集。此时在客户端,用户能够以各种字符集存储文本,并使用系统提供的接口设置客户端使用的字符集,缺省使用客户端操作系统缺省的字符集。客户端和服务器端的字符集由用户指定后,所有字符集都可以透明地使用,系统负责不同字符集之间的自动转换。对Unicode的支持使DM系统适应国际化的需要,增强了DM的通用性。高性能DM主要通过以下机制实现了系统的高性能:可配置的多工作线程处理功能DM允许用户配置工作线程的数目。工作线程是整个系统所公用的资源,不专门为某个特定的连接服务。如果某个数据库操作由于无法取得相应的资源(如锁)而不能继续,将暂停当前的数据库事务,相应的工作线程会立即执行其它的数据库请求服务。所以,在系统硬件及操作系统性能够满足要求的情况下,连接数和任务请求数的增加对DM性能的影响是线性的。DM自动协调工作线程对内存、数据页等物理资源的共享。高效的并发控制机制DM提供了数据库的行级和表级的资源封锁机制,大大提高了事务并发访问的数目。DM通过以下几点确保并发控制的高效:用HASH表管理实现锁管理,能够在系统成千上万的锁中迅速地找到所需的锁;利用回滚段保存记录修改前的数据,实现数据的读一致性。另外,在DM中,当对数据页进行操作时,系统会自动对数据页采用合适的封锁机制。同时,DM也提供了函数供用户自行定义锁定类型,以增强系统并发度,提高系统效率。有效的查询优化策略DM采用有效的基于代价的查询优化策略,其查询优化子系统能计算最优的查询路径以保证查询的执行效率。查询优化主要通过以下三个步骤进行:SQL转换:DM首先对用户输入的查询语句进行一系列复杂的转换,其结果为一个语义上等价但处理起来更为有效的SQL语句;统计信息与代价估计:DM为数据库对象保存了一系列的统计信息,代价估计模块基于系统的I/O、CPU和内存等资源情况和数据库对象的统计信息估算每个计划的代价;执行计划选择:执行计划描述了查询语句的每一个处理步骤,如以什么算法执行连接,是否使用索引等。优化器考虑可能的执行计划,并选择代价最小的交付执行。另外,用户可通过DM的客户端工具查看查询语句的执行计划。尽可能少的网络通讯量DM对消息发送条件进行仔细判断,避免和减少无用的网络交互,提高了消息处理的效率,减轻了服务器的负担,降低了等待时间,加速了工作线程的运转,提高了性能。对于密集型联机事务处理效果尤佳。加强的缓冲机制DM为了提高系统运行效率,对于频繁操作的对象进行了必要的缓存处理,实现了数据字典高速缓冲,实现了语法 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 树的可重用,优化了存储过程和触发器的运行。与此同时,DM还新增了动态缓冲区机制。当数据库服务器发现因为缓冲区不足而产生频繁的缓冲区页面淘汰时,如果整个系统还有可用内存,则DM会自动扩展缓冲区,减少淘汰几率,显著提升系统性能。针对64位计算的优化策略和技术DM在代码级全面支持64位系统,能够支持主流64位处理机和操作系统,并融入了很多针对64位计算的优化策略和技术。DM不仅能够运行在64位系统上,还能很好地利用64位系统的资源(例如能充分地利用更大容量的内存),在64位系统上表现出良好的性能。查询计划重用DM在首次执行SQL语句过程中会在内存中创建一个计划缓冲池,缓存执行过的SQL语句、存储过程以及触发器的执行计划。对于后续接收到的SQL命令,系统自动采用字符串全字匹配的方式,在计划池中查找对应的计划,如果有则直接使用,否则对该语句进行分析,创建执行计划,并将执行计划放入计划缓冲池中。通过这种方式,系统可以极大地节省对语句进行分析和创建执行计划的时间,从而提升系统性能。查询结果集缓存DM还支持查询结果的缓存功能。查询语句第一次执行后,系统可以把结果保存下来,如果后面有同样的语句,且所访问的数据没有发生变化,则不需要进行计算,直接把先前保存的结果返回给客户即可。在很多以查询为主的系统中,采用该功能性能可以得到成倍地提升。数据压缩DM新增了数据压缩的功能,用户可以对整个表进行压缩,也可以选择对部分字段进行压缩。对于I/O密集型的系统来说,通过采取适当的数据压缩的策略,可以减少系统的I/O量,在I/O子系统是整个系统的瓶颈时,采取该措施可以有效提升系统性能。函数索引DM扩充了索引的建立方法,允许在表达式上面建立索引。表达式既可以出现在函数的参数中(如ABS(ID)),也可以是列的操作(如C1+C2),DM把这类索引称为函数索引。函数索引的引入为DBA提供了一种新的优化手段。例如,执行如下的语句:SELECT*FROMtWHEREUPPER(name)=‘CBDG’;在以往的版本中,这条语句的执行只能是全表扫描。如果建立如下索引:CREATEINDEXi_t_fbi_nameONt(UPPER(name));则可以通过函数所以i_t_fbi_name,进行等值扫描,性能获得大幅提升。高安全性只具备自主访问控制安全机制的数据库远不能满足一些对安全具有高要求的系统的需要。为了保证系统的安全性,DM采用基于角色与权限的管理方法来实现基本安全功能,并根据三权分立的安全机制,将审计和数据库管理分别处理,同时增加了强制访问控制功能,另外,还实现了包括通讯加密、存储加密以及资源限制等辅助安全功能,使得达梦数据库安全级别达到B1级。完全自主知识产权达梦数据库是具有完全自主知识产权的国产大型数据库管理系统。在产品开发过程中,达梦公司始终坚持自主开发的原则,致力于保卫国家信息安全,推进国民经济信息化建设,拥有产品的全部源代码和完全的自主版权。这一方面杜绝了继承开源系统导致的版权纠纷,同时也从根本上保证了系统的安全性,并有利于与其它应用系统集成,可以根据具体需求定制和提供及时有效的服务。三权分立的安全机制DM在安全管理方面采用了三权分立的安全管理体制,把系统管理员分为数据库管理员DBA、数据库安全管理员SSO、数据库审计员AUDITOR三类。DBA负责自主访问控制及系统维护与管理方面的工作,SSO负责强制访问控制,AUDITOR负责系统的审计。这种管理体制真正做到三权分立,各行其责,相互制约,更好地实现了数据的保密性、完整性和可用性。身份验证DM能够根据用户在系统中的登录名和密码确定该用户是否具有登录的权限和其在系统中的系统级角色,确定该用户能够做什么和不能够做什么。DM提供两种身份验证模式来保护对服务器访问的安全,即数据库身份验证模式和外部身份验证模式。数据库身份验证模式需要利用数据库口令,外部身份验证模式支持基于操作系统(OS)的身份验证。资源限制资源限制是控制用户对DM服务器系统资源的使用情况,以尽可能减少人为的安全隐患。通过资源限制可以提供一个规划数据库系统资源使用的接口,可以人为地规划数据库资源的分配。这样做对于恶意地抢占资源的访问可以起到有效的遏制,保证普通数据库应用的正常进行,同时资源限制还起到保证身份验证可靠性的作用。自主访问控制DM系统根据用户的权限执行自主访问控制。用户权限是指用户在数据对象上被允许执行的操作。规定用户权限要考虑三个因素:用户、数据对象和操作,即什么用户在哪些数据对象上可执行什么操作。所有的用户权限都要记录在系统表(数据字典)中,对用户存取权限的定义称为授权,当用户提出操作请求时,DM根据授权情况进行检查,以决定是执行操作还是拒绝执行,从而保证用户能够存取他有权存取的数据,不能存取他无权存取的数据。基于标记的强制访问控制DM利用策略和标记来实现数据库的强制访问机制。强制访问控制主要是针对用户和元组,用户操作元组时,不仅要满足自主访问控制的权限要求,还要满足用户和元组之间标记的相容性。这样,就避免了出现管理权限全部由数据库管理员一人负责的局面,同时也相应地增强了系统的安全性。数据库审计审计机制是DM数据库管理系统安全管理的重要组成部分之一。DM具有一个灵活的审计子系统,可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。通过查看审计信息,数据库审计员可以知道用户访问的形式以及试图对该系统进行的操作。一旦出现问题,数据库审计员可分析审计信息,跟踪审计事件,查出原因。通信加密DM提供两种通信方式,即不加密、可选算法的加密通信。选择何种通信方式以服务器端为准,通过设置服务器端配置文件中相应选项来指定,客户端以服务器采用的通信方式与其进行通信。存储加密某些信息具有保密要求,实现存储加密的重要性不言而喻。DM实现了对存储数据的加密,另外,还提供了内置的数据加/解密函数,为用户的隐私数据提供更加可靠的保护。客体重用DM内置的客体重用机制使数据库管理系统能够清扫被重分配的系统资源,以保证数据信息不会因为资源的动态分配而泄露给未授权的用户。高可靠、高可用性任何一个系统都存在发生各种意外故障的可能性。DM的高可靠、高可用性可以避免或降低系统的意外故障对用户带来的损失,主要包括以下几个方面的功能:数据守护DM数据守护(DataWatch)是一种集成化的高可用、高性能数据库解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,是数据库异地容灾的首选方案。通过部署DM数据守护,可以在硬件故障(如磁盘损坏)、自然灾害(地震、火灾)等极端情况下,避免数据损坏、丢失,保障数据安全,并且可以快速恢复数据库服务,满足用户不间断提供数据库服务的要求。DM数据守护提供多种解决方案,可以配置成实时主备、MPP主备、或读写分离集群,满足用户关于系统可用性、数据安全性、性能等方面的综合需求。共享存储集群DM共享存储数据库集群(DMDataSharedCluster,简称DMDSC),允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMRAC支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。高级复制达梦数据复制(DATAREPLICATION)是一个分担系统访问压力、加快异地访问响应速度、提高数据可靠性的解决方案。将一个服务器实例上的数据变更复制到另外的服务器实例。可以用于解决大、中型应用中出现的因来自不同地域、不同部门、不同类型的数据访问请求导致数据库服务器超负荷运行、网络阻塞、远程用户的数据响应迟缓的问题。基于DM高级复制技术可以实现数据库的异地快速备份、实时快速同步功能;可以根据实际应用需要,搭建一对多复制、多对一复制、级联复制、对称复制、循环复制等复杂的逻辑复制环境。故障恢复措施数据库的备份与还原是系统容灾的重要方法。备份意味着把重要的数据复制到安全的存储介质上,还原则意味着在必要的时候再把以前备份的数据复制到最初的位置,以保证用户可以访问这样的数据。DM数据库管理系统支持的备份方式包括物理备份,逻辑备份和B树备份,其中B树备份是介于物理备份和逻辑备份的一种形态。物理备份分为数据库级的备份和用户表空间级的备份;B树备份分为数据库级的备份和用户表级的备份。为了提高备份恢复的安全性,减少备份文件占用磁盘空间的大小,系统支持对备份数据加密和压缩。易用性为了让用户更加容易掌握达梦数据库,DM提供了大量功能特性来简化系统的使用、管理和维护,具体表现在:动态缓冲区DM提供了动态缓冲区管理机制,可以更加有效地利用系统内存资源,提高服务器灵活性,减轻系统管理员负担,满足各种应用环境的需求。用户可以在服务器启动时仅分配较少的缓冲数据页,或者直接采用缺省的缓冲区配置参数,就可以满足一般的应用需求。当数据库服务器发现因为缓冲区不足而产生频繁的缓冲区页面淘汰时,系统会自动扩展缓冲区,减少淘汰几率。当系统相对空闲时,DM又会逐步释放扩展的缓冲区空间,直至最初的规模。数据库重演数据库重演(DatabaseReplay)是指在数据库系统上捕获所有负载(记录外部客户端对服务器的请求),保存到二进制捕获文件,并传送到由原始数据库的备份所恢复出来的重演测试系统上。利用捕获文件,重演客户端在系统上所做的所有操作通过重演可再现该段时间内真实环境的负载及运行情况,例如可获取系统运行中的出错的操作。通过该功能,可以方便地再现用户负载,方便用户定位系统所存在的各种问题。同义词同义词(Synonym)实际就是让用户能够为数据库的一个模式下的对象提供别名,它可以替换模式下的表,视图,序列,函数,存储过程等对象。同义词通过掩盖一个对象真实的名字和拥有者来提供了一定的安全性,同时使用同义词可以简化复杂的SQL语句。动态性能视图DM8中提供了动态性能视图功能(一组以V$开头的系统表)。通过动态性能视图,数据库管理员可以方便地查看当前服务器诸如锁的信息、缓存使用情况、IO状况等实时性能信息,便于找出系统瓶颈,进行系统优化。Oracle兼容性目前,大多数应用程序使用的是Oracle数据库,用户或多或少地使用了Oracle的一些特殊功能,而这些特殊功能在其他数据库中都未实现。为了方便应用的移植,DM实现了很多Oracle独特的功能和语法,使得多数Oracle的应用可以不用修改而直接移植到DM上面。Oracle兼容性方面实现的功能包括:ROWNUM表达式、多列IN语法、层次查询、外连接语法“(+)”、INSTEADOF触发器、%TYPE以及记录类型等。类型别名类型别名实际上是为数据类型提供一个更加容易记住和理解的名字,方便用户使用。实际上,各大数据库的部分数据类型名称也不相同,通过创建数据类型的别名,可以为应用系统的移植和数据的迁移提供便利。执行计划为了方便用户对SQL语句性能进行分析和调整,DM提供了显示执行计划的功能。简便的数据库系统安装和配置统一的界面,熟悉的环境DM提供一个基于Java的安装程序,利用Java的跨平台性,可以在Windows、Unix、Linux、Solaris等平台上运行,且具有统一界面。这样,无论在什么平台上,它都可以为管理员提供一个简洁的安装界面,熟悉、统一的安装环境。便捷的安装向导DM的安装程序把软件安装、数据库初始化和配置结合在一起,一气呵成。配置灵活DM为常见应用做了缺省优化配置,用户可以一路“确认”下来,完成安装,也可自行调整。在安装过程中,安装程序提供一个交互界面来初始化数据库,通过DM提供的控制台工具,管理员可以方便地根据实际应用配置DM数据库的各项参数,从而获得最大的应用性能。详尽的提示信息减少了用户在安装过程中可能出现的问题。通过降低安装的复杂性,简化配置操作,数据库管理员可提高工作效率,普通技术人员也很容易成为数据库系统管理员。集成的系统管理工具ManagerDM系统管理工具Manager是管理DM数据库系统的图形化工具,类似于Oracle和MSSQLServer的EnterpriseManager。Manager可以帮助系统管理员更直观、更方便地管理和维护DM数据库,普通用户也可以通过Manager完成对数据库对象的操作。Manager的管理功能完备,能对DM数据库进行较为全面的管理,在不借助其他工具的情况下,能满足系统管理员和用户的常规要求。同时,管理工具Manager还集成了安全管理的功能:DM安全管理员可以通过Manager进行标记管理,同时它也为DM安全管理员提供了管理安全管理员以及安全管理员登录的操作界面;DM审计员可以用Manager来监视、记录、分析用户对数据库的操作,同时它也为DM审计管理员提供了管理审计员以及审计员登录的操作界面。数据迁移工具DTSDM数据迁移工具DTS可跨平台实现数据库之间的数据和结构互导,例如DM与DM之间、DM与ORACLE、MSSQLServer之间等,也可复制从SQL查询中获得的数据,还可实现数据库与文本文件之间的数据或者结构互导。为了实现与ORACLE、DB2、SQLServer等多种主流数据库管理系统的数据交换,DM提供跨平台的数据迁移工具DTS。它是一个用纯Java编写的基于JDBC/ODBC的数据迁移工具,可跨平台实现数据库之间的数据和结构互导,也可复制从SQL查询中获得的数据,还可实现数据库与文本文件之间的数据或者结构互导。在迁移的过程中它最大限度地保留了源数据的原始信息(包括源数据的类型、精度、默认值、主键和外键约束等),还支持迁移过程中的数据类型自动转换,关于转换方面的细节问题可由数据迁移工具自动来为您解决,数据库管理员所要做的仅仅是指定需要进行数据迁移的两个数据库的连接参数和所迁移的数据。DM良好的数据迁移解决方案为系统移植工作减少了很大一部分工作量,免去系统管理员和开发人员的后顾之忧,能够将更多的精力投入到应用程序的移植上面来。性能监控工具MonitorDM性能监控工具Monitor是DM系统管理员用来监视服务器的活动和性能情况的客户端工具。它允许系统管理员在本机或远程监控服务器的运行状况,并根据系统情况对系统参数进行调整,以提高系统效率。控制台工具ConsoleDM控制台(Console)是数据库管理员(DBA)管理和维护DM数据库的基本工具。通过使用DM控制台,数据库管理员可以完成修改服务器配置参数,启动、停止数据库服务,脱机备份与恢复,以及系统信息查看等任务。命令行控制台工具为方便批处理、编程使用,大部分功能都提供命令行方式,如交互式工具disql、初始化库工具dminit、备份恢复工具DMRMAN、快速数据装载工具dmfldr、导入导出工具dexp/dimp、数据库重演工具dreplay等。海量数据存储和管理DM的数据存储逻辑上分为4个层次:数据库实例、表空间、数据文件、数据块。DM每个数据库实例理论上可包含多达65535个表空间,每个表空间可包含256个数据文件,每个数据文件由若干数据块构成。每个数据文件的大小最大为32K*4G,因此DM最大数据存储容量达到TB级(实际上远远超过),足以支持大型应用。此外,DM全面支持64位计算,极大地扩展了系统支持的数据存储和内存容量,这也有利于满足大型应用对海量数据存储和管理的要求。全文检索现有的数据库系统,绝大多数是以结构化数据为检索的主要目标,因此实现相对简单。比如数值检索,可以建立一张排序好的索引表,这样速度可以得到提高。但对于非结构化数据,即全文数据,要想实现检索,一般都是采用模糊查询的方式实现的。这种方式不仅速度慢,而且容易将汉字切分错,于是引入了全文索引技术。全文检索的主要目的,就是实现对大容量的非结构化数据的快速查找。DM实现了全文检索功能,它根据已有词库建立全文索引,然后文本查询完全在索引上进行。词库(包括中、英文等多种语言)由单独的软件进行维护和更新。全文索引为在字符串数据中进行复杂的词搜索提供了有效支持。全文索引是解决海量数据模糊查询的较好解决 办法 鲁班奖评选办法下载鲁班奖评选办法下载鲁班奖评选办法下载企业年金办法下载企业年金办法下载 。全文检索支持的检索类型有:支持英文单词的检索(单词不区分大小写)支持全角英文的检索支持中文词语的检索支持常见单个汉字的检索支持中文长句子的检索支持中英文混合的检索对存储模块的支持DM系统允许用户使用DM提供的DMSQL过程语言创建存储过程或存储函数,通常,我们将存储过程和存储函数统称为存储模块。存储模块运行在服务器端,在功能上相当于客户端的一段SQL批处理程序,但是在许多方面有着后者无法比拟的优点,它为用户提供了一种高效率的编程手段,成为现代数据库系统的重要特征。存储模块在执行时数据对用户是不可见的,提高了数据库的安全性;存储模块是一种高效访问数据库的机制,使用存储模块可减少应用对DM的调用,降低了系统资源浪费,显著提高性能,尤其是在网络上与DM通讯的应用更显著。对Web应用的支持DM提供ODBC驱动程序和OLEDBProvider,支持ADO、.NET应用。支持在ASP动态网页中访问DM。DM还提供PHP接口,支持PHP动态网页技术。DM提供符合JDBCCompliantTM规范的第四类纯Java的JDBC驱动程序,可以在以下情形中通过JDBC访问DM:在Eclipse、JBuilder等应用开发工具中;在JavaBeans组件、EJB组件中;在JSP、Applet、Servlet等基于Java的动态网页中。以上特性使得DM适应Web应用,用户只用浏览器就可以访问DM数据库。DM支持Java数据对象JDO(JavaDataObjects),JDO为对象持久性提供了第一个标准化的、完全面向对象的方法。JDO简化了用Java语言进行数据库编程的复杂性,而且对原始的Java源代码的打乱程度最小。主要技术指标定长字符串类型(CHAR)字段最大长度8188字节。变长字符串类型(VARCHAR)字段最大长度字节8188字节。多媒体数据类型字段最大长度(2G-1)字节。一个记录(不含多媒体数据)最大长度为页大小的一半。一个记录中最多字段个数2048。一个表中最大记录数256万亿条。一个表中最大数据容量4000PB(受操作系统限制)。表名、列名等标识符的最大长度128字节。能定义的最大同时连接数为65000。每个表空间的最多物理文件数目256个。物理文件的大小为32K×4G。每个数据库最多的表/视图/索引等对象的数目各为16777216。数值类型的最高精度为38个有效数字。在一个列上允许建立的最多索引数1020。表上的最大UNIQUE索引数为64。第1章概述10第2章DPI编程指南基础简介本章主要介绍DPI的基本概念以及使用方法,以便于用户更好地使用DPI编写应用程序。DPI提供了访问DM数据库的最直接的途径。DPI的实现参考了MicrosoftODBC3.0标准,函数功能以及调用过程与ODBC3.0十分类似,命名统一采用dpi开头的小写英文字母方式,各个单词之间以下划线分割(例:ODBC函数SQLAllocStmt对应的DPI函数就是dpi_alloc_stmt),用户可以参考《MicrosoftODBC3.0程序员参考手册(第二卷)》之API参考部分的函数说明及调用方法。句柄句柄是用于DPI函数申请和使用资源的变量。达梦DPI包含以下句柄:句柄说明宏定义dhenv环境句柄DSQL_HANDLE_ENVdhcon连接句柄DSQL_HANDLE_DBCdhstmt语句句柄DSQL_HANDLE_STMTdhdesc描述符句柄DSQL_HANDLE_DESCdhloblctrLob句柄DSQL_HANDLE_LOB_LOCATORdhobj复合类型句柄DSQL_HANDLE_OBJECTdhobjdesc复合类型描述符句柄DSQL_HANDLE_OBJDESCdhbfileBFILE文件句柄DSQL_HANDLE_BFILE返回值DPI的函数执行结果通过返回值来反馈给用户,DPI包含以下返回值:宏定义值说明DSQL_SUCCESS0执行成功DSQL_SUCCESS_WITH_INFO1执行成功,有警告信息DSQL_NO_DATA100未取得数据DSQL_ERROR-1执行失败DSQL_INVALID_HANDLE-2非法的句柄DSQL_NEED_DATA99需要数据DSQL_STILL_EXECUTING2语句正在执行DSQL_PARAM_DATA_AVAILABLE101有参数值可以获取数据类型数据类型为数据库中字段类型和C语言的数据类型。DPI中包括以下DSQL类型,对应对象创建时指定的类型:宏定义定义类型说明DSQL_CHARchar[(n)]定长字符类型DSQL_VARCHARvarchar(n)变长字符类型DSQL_BITbit位类型第2章DPI编程指南11DSQL_TINYINTtinyint有符号小整型(1字节)DSQL_SMALLINTsmallint有符号短整型(2字节)DSQL_INTint有符号整型(4字节)DSQL_BIGINTbigint有符号长整型(8字节)DSQL_DECdec[(p,s)]numeric[(p,s)]number[(p,s)]精确数字类型DSQL_FLOATreal单精度浮点型DSQL_DOUBLEfloatdouble双精度浮点型DSQL_BLOBblobimagelongvarbinary二进制大字段DSQL_DATEdate日期DSQL_TIMEtime[(n)]时间DSQL_TIMESTAMPtimestamp[(n)]时间戳DSQL_BINARYbinary[(n)]二进制类型DSQL_VARBINARYvarbinary[(n)]变长二进制类型DSQL_CLOBclobtextlongvarchar字符大字段DSQL_TIME_TZtimewithtimezone带时区的时间类型DSQL_TIMESTAMP_TZtimestampwithtimezone带时区的时间戳类型DSQL_RSETcursor结果集类型DSQL_CLASSclassclass复合类型DSQL_RECORDrecordrecord复合类型DSQL_ARRAYarray动态arrayDSQL_SARRAYarray静态arrayDSQL_INTERVAL_YEARintervalyear年时间间隔类型DSQL_INTERVAL_MONTHintervalmonth月时间间隔类型DSQL_INTERVAL_DAYintervalday日时间间隔类型DSQL_INTERVAL_HOURintervalhour时时间间隔类型DSQL_INTERVAL_MINUTEintervalminute分时间间隔类型DSQL_INTERVAL_SECONDintervalsecond秒时间间隔类型DSQL_INTERVAL_YEAR_TO_MONTHintervalyeartomonth年转月时间间隔类型DSQL_INTERVAL_DAY_TO_HOURintervaldaytohour日转时时间间隔类型DSQL_INTERVAL_DAY_TO_MINUTEintervaldaytominute日转分时间间隔类型DSQL_INTERVAL_DAY_TO_SECONDintervaldaytosecond日转秒时间间隔类型DSQL_INTERVAL_HOUR_TO_MINUTEintervalhourtominute时转分时间间隔类型DSQL_INTERVAL_HOUR_TO_SECONDintervalhourtosecond时转秒时间间隔类型DSQL_INTERVAL_MINUTE_TO_SECONDintervalminutetosecond分转秒时间间隔类型DPI中包括以下C类型,对应绑定时使用的数据类型:宏定义类型说明DSQL_C_NCHARchar字符类型DSQL_C_SSHORTsignedshort有符号短整型DSQL_C_USHORTunsignedshort无符号短整型DSQL_C_SLONGsignedint有符号整型DSQL_C_ULONGunsignedint无符号整型DSQL_C_FLOATfloat单精度浮点型DSQL_C_DOUBLEdouble双精度浮点型DSQL_C_BITchar位类型DSQL_C_STINYINTchar有符号小整型DSQL_C_UTINYINTunsignedchar无符号小整型DSQL_C_SBIGINTint64有符号长整型,注1:在Windows操作系统下,C中的定义为int64,在其他操作系统下会有其他的表示方式DSQL_C_UBIGINTunsignedint64无符号长整型DSQL_C_BINARYunsignedchar二进制类型DSQL_C_DATEdpi_date_t日期类型DSQL_C_TIMEdpi_time_t时间类型DSQL_C_TIMESTAMPdpi_timestamp_t日期时间类型DSQL_C_NUMERICdpi_numeric_t数字类型DSQL_C_INTERVAL_YEARdpi_interval_t年时间间隔类型DSQL_C_INTERVAL_MONTHdpi_interval_t月时间间隔类型DSQL_C_INTERVAL_DAYdpi_interval_t日时间间隔类型DSQL_C_INTERVAL_HOURdpi_interval_t时时间间隔类型DSQL_C_INTERVAL_MINUTEdpi_interval_t分时间间隔类型DSQL_C_INTERVAL_SECONDdpi_interval_t秒时间间隔类型DSQL_C_INTERVAL_YEAR_TO_MONTHdpi_interval_t年转月时间间隔类型DSQL_C_INTERVAL_DAY_TO_HOURdpi_interval_t日转时时间间隔类型DSQL_C_INTERVAL_DAY_TO_MINUTEdpi_interval_t日转分时间间隔类型DSQL_C_INTERVAL_DAY_TO_SECONDdpi_interval_t日转秒时间间隔类型DSQL_C_INTERVAL_HOUR_TO_MINUTEdpi_interval_t时转分时间间隔类型DSQL_C_INTERVAL_HOUR_TO_SECONDdpi_interval_t时转秒时间间隔类型DSQL_C_INTERVAL_MINUTE_TO_SECONDdpi_interval_t分转秒时间间隔类型DSQL_C_DEFAULT自动映射类型DSQL_C_LOB_HANDLEdhloblctr大字段句柄DSQL_C_RSETdhstmt结果集类型DSQL_C_CLASSdhobj复合对象类型DSQL_C_RECORDdhobj复合对象类型DSQL_C_ARRAYdhobj复合对象类型DSQL_C_SARRAYdhobj复合对象类型DSQL_C_WCHARwchar_t宽字节类型诊断函数调用的返回信息放在诊断区域中。每一个环境、连接、及描述符句柄都有一个诊断区域。在诊断区域的头字段返回一般的函数执行信息,它的记录字段记录函数调用的错误信息和警告。用户可以指定获取某一个记录的信息从而更准确地判断函数执行的情况。进阶环境句柄客户端程序要和数据库服务器进行通信,必须首先进行环境的设置,需要使用到环境句柄。一个环境句柄可以包含多个连接句柄。客户端程序可以通过函数dpi_alloc_env来申请一个环境句柄。环境句柄申请成功后就可以通过函数dpi_alloc_con来申请连接句柄了。环境句柄包含属性如下表所示:属性说明取值DSQL_ATTR_LOCAL_CODE本地编码PG_GBK等DSQL_ATTR_LANG_ID错误消息的语言LANGUAGE_EN或者LANGUAGE_CN连接句柄客户端程序要和数据库服务器进行通信,必须和数据库服务器建立连接。所以需要先连接数据库服务器,再使用数据库函数dpi_alloc_con申请连接句柄。要申请连接句柄必须先成功申请环境句柄。一个连接只能属于一个环境句柄。申请连接句柄成功后可以通过函数dpi_login来进行数据的连接登录。连接句柄包含属性如下表所示:属性说明取值DSQL_ATTR_ACCESS_MODE连接的访问模式(可读写)DSQL_MODE_READ_ONLY或者DSQL_MODE_READ_WRITE默认DSQL_MODE_READ_WRITEDSQL_ATTR_ASYNC_ENABLE允许异步执行,未提供未支持DSQL_ATTR_AUTO_IPD自动分配参数描述符(只读)DSQL_ATTR_AUTOCOMMIT自动提交(可读写)DSQL_AUTOCOMMIT_ON或者DSQL_AUTOCOMMIT_OFF默认DSQL_AUTOCOMMIT_ONDSQL_ATTR_CONNECTION_DEAD连接存活,未提供DSQL_ATTR_CONNECTION_TIMEOUT执行超时时间(可读写)udint4数值DSQL_ATTR_LOGIN_TIMEOUT登录超时时间udint4数值DSQL_ATTR_PACKET_SIZE网络包大小,未提供DSQL_ATTR_TXN_ISOLATION事务隔离级(可读写)ISO_LEVEL_READ_UNCOMMITTED,ISO_LEVEL_READ_COMMITTED,ISO_LEVEL_SERIALIZABLEDSQL_ATTR_LOGIN_PORT登录端口号(可读写)sdint2数值默认5236DSQL_ATTR_STR_CASE_SENSITIVE大小写是否敏感(只读)DSQL_ATTR_MAX_ROW_SIZE行最大字节数(只读)DSQL_ATTR_LOGIN_USER登陆用户(只读)DSQL_ATTR_LOGIN_SERVER登陆服务器IP(只读)DSQL_ATTR_INSTANCE_NAME实例名称(只读)DSQL_ATTR_CURRENT_SCHEMA当前模式(只读)DSQL_ATTR_SERVER_CODE服务器的编码(只读)DSQL_ATTR_LOCAL_CODE本地编码(可读写)PG_SQL_ASCII,PG_UTF8,PG_GBK,PG_BIG5,PG_ISO_8859_9,PG_EUC_JP,PG_EUC_KR,PG_KOI8R,PG_ISO_8859_1,PG_GB18030,PG_ISO_8859_11,PG_UTF16DSQL_ATTR_LANG_ID错误消息的语言(可读写)LANGUAGE_ENLANGUAGE_CN或者DSQL_ATTR_APP_NAME应用名称(可读写)DSQL_ATTR_COMPRESS_MSG消息压缩(可读写)DSQL_TRUE压DSQL_FALSE不压缩缩,DSQL_ATTR_RWSEPARATE读写分离(可读写)DSQL_TRUE开DSQL_FALSE关闭启,DSQL_ATTR_RWSEPARATE_PERCENT读写分离比例(可读写)0-100默认25DSQL_ATTR_CURRENT_CATALOG(只读)DSQL_ATTR_TRX_STATE事务状态(只读)DSQL_TRX_ACTIVE和DSQL_TRX_COMPLETEDSQL_ATTR_USE_STMT_POOL语句句柄缓存池(可读写)DSQL_TRUE开启,DSQL_FALSE关闭DSQL_ATTR_SSL_PATHSSL证书所载的路径路径(可读写)字符串(最长256)DSQL_ATTR_SSL_PWDSSL加密密码(可读写)字符串(最长512)DSQL_ATTR_MPP_LOGINmpp登陆方式(可读写)DSQL_MPP_LOGIN_GLOBAL全局登陆DSQL_MPP_LOGIN_LOCAL本地登陆DSQL_ATTR_CRYPTO_NAME加密方式(可读写)DSQL_ATTR_CERTIFICATE密钥(可读写)最长4096DSQL_ATTR_UDP_FLAG提供UDP或TCP连接(可读写)1则表示UDP连接,0则表示TCP连接,默认为0DSQL_ATTR_LOGIN_CERTIFICATE指定登录加密用户名密码公钥所在的路径。该属性和dm_svc.conf中配置项LOGIN_CERTIFICATE功能一样。两者不一致时,DSQL_ATTR_LOGIN_CERTIFICATE设置优先字符串(最长256)语句句柄DPI用语句句柄来存取名称、参数、错误以及其他关于语句处理流程的信息。在一个连接句柄下可以有多个语句句柄,一个特定的SQL语句总是和一个句柄连接相联系的。在DPI中,通过语句句柄可以了解到语句的状态、当前语句的诊断信息、语句的参数以及结果集绑定的应用程序变量等信息、每一个语句的当前属性值。客户程序调用dpi_alloc_stmt函数申请一个语句句柄,用dpi_free_stmt函数释放一个语句句柄。语句句柄包含属性如下表所示:属性说明取值DSQL_ATTR_ROW_BIND_TYPE行绑定类型(可读写)DSQL_ATTR_ROW_BIND_OFFSET_PTR行绑定偏移(可读写)DSQL_ATTR_ROW_OPERATION_PTR绑定行数据处理指示(可读写)DSQL_ATTR_ROW_STATUS_PTR获取行数据状态指示(可读写)DSQL_ATTR_ROWS_FETCHED_PTR已获取行数指示(可读写)DSQL_ATTR_ROW_ARRAY_SIZE行集大小(可读写)DSQL_ATTR_ROWSET_SI行集大小(可读写)ZEDSQL_ATTR_USE_BOOKMARKS是否使用书签(可读写)DSQL_ATTR_FETCH_BOOKMARK_PTR书签值(可读写)DSQL_ATTR_PARAM_BIND_OFFSET_PTR参数绑定值的偏移位置(可读写)DSQL_ATTR_PARAM_BIND_TYPE参数绑定类型(可读写)DSQL_ATTR_PARAM_OPERATION_PTR参数数据处理指示(可读写)DSQL_ATTR_PARAM_STATUS_PTR参数使用状态(可读写)DSQL_ATTR_PARAMS_PROCESSED_PTR参数集中参数处理的个数(可读写)DSQL_ATTR_PARAMSET_SIZE参数集大小(可读写)DSQL_ATTR_ROW_NUMBER当前行位置(只读)DSQL_ATTR_IMP_ROW_DESC服务器端的行描述(只读)DSQL_ATTR_IMP_PARAM_DESC服务器端参数描述(只读)DSQL_ATTR_APP_PARAM_DESC应用程序参数描述(可读写)DSQL_ATTR_APP_ROW_DESC应用程序行描述(可读写)DSQL_ATTR_CURSOR_TYPE游标类型(可读写)DSQL_CURSOR_FORWARD_ONLYDSQL_CURSOR_STATICDSQL_CURSOR_KEYSET_DRIVENDSQL_CURSOR_DYNAMICDSQL_ATTR_CONCURRENCY游标的并发方式(可读写)DSQL_CONCUR_READ_ONLYDSQL_CONCUR_LOCKDSQL_CONCUR_ROWVERDSQL_CONCUR_VALUESDSQL_ATTR_CURSOR_SCROLLABLE游标是否可滚动(可读写)DSQL_NONSCROLLABLEDSQL_SCROLLABLEDSQL_ATTR_CURSOR_SENSITIVITY结果集修改对其他游标是否可见(可读写)DSQL_UNSPECIFIEDDSQL_INSENSITIVEDSQL_SENSITIVEDSQL_ATTR_MAX_LENGTH字符类型或者二进制类型列的最大返回长度(可读写)DSQL_ATTR_MAX_ROWS结果集返回的最大行数(可读写)DSQL_ATTR_NOSCAN是否检查语句中的转义符(可读写),未提供DSQL_ATTR_QUERY_TIMEOUT执行超时时间(可读写),未提供DSQL_ATTR_RETRIEVE_DATA游标滚动后是否检索数据(可读写),未提供DSQL_ATTR_ENABLE_AUTO_IPD自动分配参数描述符(可读写)DSQL_TRUE或者DSQL_FALSEDSQL_ATTR_ASYNC_ENABLE异步执行(可读写),未提供DSQL_ATTR_KEYSET_SIZE键集驱动游标结果集中行的大小(可读写),未提供DSQL_ATTR_SIMULATE_CURSOR指定游标更新和删除是否只影响单行(可读写),未提供DSQL_ATTR_METADATA_ID(可读写)DSQL_TRUEDSQL_FALSEDSQL_ATTR_SQL_CHARSET字符集编码(可读写)PG_SQL_ASCII,PG_UTF8,PG_GBK,PG_BIG5,PG_ISO_8859_9,PG_EUC_JP,PG_EUC_KR,PG_KOI8R,PG_ISO_8859_1,PG_GB18030,PG_ISO_8859_11,PG_UTF16DSQL_ATTR_IGN_BP_ERR批量参数错误数据处理策略(可读写)DSQL_TRUEDSQL_FALSE描述符句柄一个描述符句柄是指包含列或者动态参数信息的一个数据结构。对于许多应用程序,直接访问与操作描述符会使得操作更加简单。在DPI中描述符分为以下几种类型:应用程序参数描述符(APD):包含被应用程序设置的输入动态参数或者随执行SQL语句中的CALL产生的输出动态参数;驱动执行参数描述符(IPD):对于输入参数,在完成应用程序指定的数据转换之后,它包含了与APD相同的参数。对于输出参数,在进行了一些应用程序指定的数据转换之前,它包含了返回的参数;驱动执行行描述符(IRD):包含数据库中的一行;应用程序行描述符(ARD):包含数据的行
本文档为【达梦数据库DM8程序员手册-D】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
IT人
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:0
分类:互联网
上传时间:2021-02-25
浏览量:232