基于动态指标体系的数据库技术的应用研究
摘 要:摘要:为了改善各种动态指标体系数据库的访问速度,提高动态指标体系数据库系统的运行性能和效率,需要对动态指标体系数据库的性能研究进行深入的研究,本文在充分了解系统需求以及动态指标体系管理系统底层实现的基础上,对动态指标体系的设计进行研究。
关键词:关键词:动态指标;数据库技术
中图分类号:TP311 文献标识码:A 文章编号:
1. 引言
动态指标体系设计是指对于一个给定的应用环境,结合应用系统的设计构造最优的动态指标体系模式,建立合理的动态指标体系结构,使之能够有效地存储数据,满足各种用户的应用需求。动态指标体系设计的目的就是要构造一个最优的数据模式,以及以动态指标体系为基础的应用程序。
动态指标体系设计主要包括逻辑设计和物理设计两个部分。逻辑动态指标体系设计考虑的是使用动态指标体系组件(如表和约束)建立数据模型。而物理动态指标体系设计将逻辑设计映射到物理设备上,并充分利用可用的软硬件功能使得应用程序能够尽可能快地访问动态指标体系。准确地设计动态指标体系以建立数据模型在动态指标体系应用的过程中是至关重要的,因为在系统设计初期完成动态指标体系的设计,如果在中后期再对其设计进行更改将花费大量的时间,而且要更改这些组件十分困难。
2. 动态指标体系访问技术
在关系动态指标体系模型中,逻辑动态指标体系是一组相关的规范化的基本表。动态指标体系的逻辑设计(包括各种表和表之间的关系)是研究关系动态指标体系的核心部分。优秀的逻辑动态指标体系设计,将会使得动态指标体系及其应用程序具有更好的性能,而且为动态指标体系和应用程序的进一步研究打下坚实的基础。低质量的设计将会影响整个系统的性能,会给后期系统的扩展带来负面的影响。
假设这个月份的数据量达到几百万、几千万条以上,上面的DELETE 语句执行开销会非常大,可能比同一张表的加载进程需要更多的时间。但是,如果按照时间对表进行了分区,则可以将满足该时间的几个数据表直接从动态指标体系中删除,而这个过程几乎可以在瞬间完成。
逻辑动态指标体系的设计必须保证动态指标体系能够快速地执行所有事务,因此需要找出动态指标体系中包含大数据量的表以及动态指标体系经常需要执行的比较复杂的事务,在对这些表进行设计时,应特别关注设计的性能问题。
提高性能的逻辑动态指标体系设计包括:
(1)对包含成百上千万条数据信息的表进行报表汇总时,可以向该表添加包含预聚合数据的一列或多列,以提高大数量数据报表时动态指标体系的性能。
(2)字段类型应使用与度量值数据一致的最小数据类型。比如能使用smallint 类型就不使用int 类型。在超大规模的动态指标体系中,如果每条记录减少两个字节,合计起来也能明显减少表的大小以及数据操作所需要的时间。
(3)动态指标体系查询的性能与数据集字段的类型也有一定的关系。比如IP 地址用numeric 类型比使用字符类型拥有更好的查询性能。
(4)动态指标体系过度规范化造成的大量的表以及表之间复杂的连接关系会降低数据处理的性能。因此,适当降低动态指标体系规范化程度以简化大量复杂的处理可以提高动态指标体系系统的性能。
3. 动态指标数据库接口技术实现
动态指标体系访问接口在动态指标体系应用系统中起到非常重要的桥梁作用,企业级的应用程序需要从动态指标体系中快速存取各种大量的数据信息,所有的这种与动态指标体系交互都是通过它来实现的。
对于追求高性能的企业级应用来说,动态指标体系访问接口的性能制约着整个系统的性能,所以对动态指标体系访问接口进行研究具有重要的意义,特别是在数据量非常大的情况下,这种研究将会使应用程序的性能得到极大的提升。
动态指标体系访问接口与应用开发平台是紧密相关的。通常应用开发平台都提供一定的动态指标体系访问接口供程序开发者选择,但是这些接口对于不同的运行环境性能上会有很大的差别。因此,在选择适当的开发平台的基础上,结合系统的实际需求,确定合适的动态指标体系访问技术并对其进行研究显得非常重要。
在开发动态指标体系应用程序的时候,适当地选择一种应用程序开发平台所提供的动态指标体系访问技术是至关重要的。我们应该从多个方面不同的角度进行全面的分析,选择一种最适合于本系统的动态指标体系访问接口,否则会极大影响动态指标体系应用程序的访问效率,从而制约了整个系统的性能。
动态指标体系访问技术的选择与开发平台的选择、应用的规模、操作的层次、数据的分布能力、选择的后台动态指标体系管理系统以及开发者的能力等因素有关。开发平台的选择是指选择一门合适的程序设计语言进行应用程序的设计和开发。通常,确定了应用程序开发平台,就将动态指标体系访问技术限制到一个较小的选择范围。如Visual C++支持ADO、OLE DB、MFC ODBC、ODBC、DAO 等,而Java 主要支持JDBC 等。
为了向上层动态指标体系应用提供具有良好性能的通用动态指标体系底层访问接口,有必要对ADO 进行封装和研究。
对ADO 进行封装和研究,使得ADO 接口能够更方便地使用,而不必再去重复编写一些复杂的代码,从而简化应用程序书写的逻辑,提高了代码的复用率。这种封装还能够使得应用程序的各个模块更加独立,从而降低了应用程序开发的复杂度,提高了软件的生产效率。
在ADO 对象模型结构中,Connection 对象提供数据源与访问对象之间的连接,负责管理应用程序与数据源之间的通讯。它通过用户名和用户口令来鉴别用户身份的合法性,并提供直接操作数据源的方法,还提供对事务处理的支持。
由于ADO 是基于COM 的,在软件开发过程中使用ADO 组件的时候,经常会对大量COM 的异常信息进行处理。异常处理在开发过程中如果处理不当,将会导致应用程序无法正常工作,甚至造 成更严重的后果,所以在对ADO 的接口进行封装的同时,也把COM 异常放在封装类的内部进行处理,从而增强了应用程序的健壮性,使得开发过程更加简单化。
(1)如果数据量非常大,进行一次数据查询统计的时间往往要比动态指标体系默认查询连接超时(30秒)的时间要长。另外,可能动态指标体系数据库比较忙,或者是查询语句极其复杂等原因,导致查询时间比预期的更长。无论什么情况,都应该适当的设置查询计划的预期执行时间,这种设置可以封装在动态指标体系连接初
始化的接口中,也可以自行设定。
(2)设置使用ADO 临时表引擎来管理查询结果,即设置RecordSet 对象的CursorLocation 属性为客户端模式(adUserClient)。我们应该仅仅获取应用程序真正需要的数据传送到客户端,使用少量、多次的方式获取数据,而且只有在客户端模式下我们才能对记录集进行导航操作。这种方式对于主从架构以及分布式多层应用系统,特别是对于Internet/Intranet 和电子商务应用系统来说,可以保证应用程序能够在许多用户同时使用的情况下仍然拥有较快的执行速度。
(3)适当设定RecordSet 对象的CacheSize 属性值,此值指定缓存在本地内存中的 Recordset 对象的记录数,将该属性值设置为较大的数值有助于减小网络传输。在考虑许多用户并发存取数据时的瞬间网络负载量以及应用程序的其他实际情况自行设定CacheSize 的数值,默认值为1。
(4)在向动态指标体系中插入数据的时候,如果数据中包含有特殊字符,则可能会导致Insert 语句提交失败。如果数据信息中包括这种特殊字符(不管是单个出现还是成对出现),我们可以采用ADO 记录集绑定或者记录集的添加和更新(或记录批更新)的方法来解决此问题。这是在动态指标体系应用程序设计中必须考虑的问题,否则会造成安全上的严重隐患。另外,使用ADO 记录批更新方法比单个记录的更新方法能够使ADO 应用程序具有更好的执行效率。
(5)由于WebUI 的开发平台PHP 没有结构数据类型的,数据处理中心返回的只能是字符串形式的数据,所以定义一个能够获取当前记录集中任意一个字段的字符串类型数据的通用函数非常有必要,毕竟表中的字段不会全是一种数据类型。
本文主要对动态指标体系数据库的逻辑设计和物理设计及其性能研究进行了详细的分析和讨论。逻辑动态指标体系设计和研究主要对逻辑动态指标体系设计的规范化以及其研究进行说明。
参考文献:
[1]蒋炜,基于动态指标体系的企业人力资源系统动态数据库的设计与实现[D],厦门大学,2008,15-16
[2]siberschatz,杨冬青,唐世渭等.a database system concepts,4th edition[M],北京:机械工业出版社,2003.3,128-129
上一篇:高校机房的配置管理