Oracle 数据库医疗信息系统优化设计研究
2021-07-11董向文
董向文
(广西中医药大学第一附属医院信息科,广西南宁 530023)
医疗信息系统为医护人员提供信息支持,确保日常工作可以顺利进行,作为一个具备综合信息处理能力的平台,医疗信息系统可以全面整合病人的门诊信息、床位信息、财务信息等。应用该信息系统后,病人可直接在网上挂号、预约,无须提前排队挂号,看病更方便快捷。此外,病人的看诊、药品、床位信息可以在各部门间实时传输,实现医院业务透明化,提升工作效率,降低医疗事故的发生几率。医疗信息系统运行稳定与否,直接决定了医护人员是否能正常工作,若系统运行状态异常,会直接影响医院的日常运行,严重时还会影响到病人的生命安全,因此构建运行稳定、性能优渥的医疗信息系统就显得尤为重要,该文基于Oracle 数据库技术,对医疗信息系统的优化进行了研究。
1 Oracle性能概述
1.1 Oracle体系结构
目前,在多个领域的管理系统中已经广泛地运用Oracle 数据库,Oracle 当中的ODI 是基于Java创建的E-LT 引擎,适配于多种主流数据源,可与Oracle 数据库实现无缝对接,能满足重要数据的集成需求。但是随着系统用户的增加,Oracle 的规模和数据结构也越来越大,致使信息管理能力有所下降。为了妥善解决这些问题,需要及时对系统进行优化,对Oracle 数据库的内部结构进行调整,重新配置资源,激发其高性能优势。为了达到提升Oracle 数据库性能的目的,需要对其内部体系结构进行深入了解和探究,其具体体系结构如图1所示[1-2]。
图1 Oracle数据库体系结构
该体系结构由用户进程和实例化对象两方面构成。进入用户进程就意味着进入了系统的全局区。其数据信息可以与数据库文件完成信息交互,交互后的数据可完整地存储于缓冲区,从根本上提升Oracle 数据库的工作效率。
1.2 Oracle性能检测对象
可以利用对Oracle 数据库进行性能监测的方式来提升其性能。Oracle 数据库内部具有AWR(自动负载信息库),可以当做相关对象完成检测数据库性能的工作。AWR 能将所有和数据库性能有关的数据进行统计,用量度的方式将具体统计结果表示出来,将Oracle 数据库存在的潜在性能问题体现出来。MMON 模块会分时段对数据库内容进行采集,确保数据具备时效性。AWR 在完成数据信息采集后,会以数据表的形式将其保存下来,并以WRMMYM_*和WRHMYM_*的格式对其命名,用户可通过输入关键信息的方式完成数据查询工作。具体的性能检测视图概况如图2 所示[3-4]。
图2 性能检测视图概况图
2 医疗信息系统架构
Oracle 数据库作为医疗信息系统的主要构成部分,需要长期服务于系统的工作过程。为了使硬件资源的性能充分发挥,首先要提升数据库性能,相应的硬件配置表如表1 所示。
表1 硬件配置表
数据库优化具体划分为3 个阶段:1)优化外部环境和操作系统级别,主要目的是在外部构建更适合数据库硬件运行的环境。2)优化数据库配置级别,主要优化内容是对初始化参数和连接方式进行优化。3)优化SQL 语句,该优化的侧重点应放于参数绑定和索引应用上,以下会对优化SQL 语句进行深入研究[5-6]。
2.1 SQL优化方法
对SQL 语句进行优化,可以一定程度上提升Oracle 数据库的性能,在出现同样的查询要求时,可以运用不同的SQL 语句完成查询工作,不同的SQL语句工作效率也各不相同。因此,选择适宜的SQL执行语句有助于提升医疗信息系统的性能,其具体执行过程如图3 所示。
图3 SQL语句处理过程
从图3 可以看出,该流程包含软解析和硬解析两个部分。软解析模块依次对查询语句的语法和语义进行检查,结合检查结果对优化模式进行决定,最终实现SQL 计划的执行。
2.2 SQL优化实现
表2、表3 为仿真实验中创建索引之前和之后的执行计划。
表2 创建索引之前的执行计划
表3 创建索引之后的执行计划
通过对比二者的Cost 值可以得出以下结论,创建索引之后,Oracle 数据库的性能得到了大幅度提升,优化效果明显。
3 导入数据中文乱码优化技术
3.1 Oracle数据库字符集和导入导出概念概述
当Oracle 数据库创建完成后,所用的字符集无法改变,因此,在医疗信息系统构建的初步阶段就应提前做好字符集种类的选定工作[7-8]。在Oracle 数据库中,有与之关联的NLS_LANG,其参数为NLS_LANG=language_territory.charset。其 中,language 代表系统所用语言,territory 则代表日期及数字格式,charset 代表指定字符集。Oracle 数据库进行imp/exp等程序时,可以起到备份和还原医疗信息系统数据的作用。exp 命令,可导出远程数据库服务器中的数据并将其保存至dmp 文件之中,imp 命令则是将dmp文件中存储的数据传送至远程数据库服务器[9-10]。此种导入导出方式能创建出两个属性相同的数据库,分别用来测试和正式使用。
3.2 查询Oracle字符集方法
在Oracle 数据库的使用过程中,如果字符集不同则数据的导入将会受到影响,所以必须一并导入所有的字符集,避免出现乱码。1)可应用多种方法对Oracle server 端的字符集进行查询。2)对Oracle client端字符集进行确认,通过import 将Oracle 数据库的dmp 文件进行导入,若二者所应用的数据库字符不一致,可能会出现数据乱码的情况,可以借助修改注册表的方式来重新选取客服端字符集。3)DMP 文件字符集的查询方法。采用Oracle 数据库中的exp工具导出DMP 文件中囊括的字符集信息,由于医疗信息系统中的DMP 文件巨大,内存通常多达10 G 以上,因此容易出现打开缓慢或打不开的情况,此时可采用UltraEdit软件对其进行编辑,提升打开速度[11-12]。
3.3 导入实施方案
在设计导入实施方案时,需要应用到两台服务器,可将A机设定为oracle10g,system为管理员账号,dbserver 为全局数据库,us7ascii 为字符集。B 机数据库服务器则为oracle11g,除了字符集为zhs16gbk 以外,包括安装路径在内,都与A 机数据库完全相同。1)确定字符集,登录plsql 之后输入相应的脚本对字符集进行确定。2)导出文件,此项工作可以在DOS 中完成。利用exp 将医疗信息系统中的数据转化为二进制形式,然后下载成相应的dmp 文件,便于后续的数据调取。3)运用UltraEdit 工具,由于医疗信息系统中的文件巨大,打开文件时采用普通的文本工具难度会增大,所以要合理运用UltraEdit 工具对需要导出的文件进行编辑来缩短其打开时间[13-14]。
3.4 具体导入过程
再次将下载好的dmp 文件上传至系统数据库,数据导入之后要对管理员口令进行更改,然后再对系统进行重启[15-16]。应用此技术可有效解决汉字显示乱码问题,提升医疗信息系统的运行稳定性。
4 结束语
当前医疗信息系统内部所存信息量非常巨大,而且存储结构比较复杂,针对这种现状,提出了基于Oracle 数据库对医疗信息系统进行优化的设想。通过检测Oracle 数据库体系结构和相关对象的方式对其进行优化,并融入导入数据中文乱码优化技术,对医疗信息系统进行进一步优化。
对系统内存中的大量医院信息数据进行调取、深度挖掘和整合,为医院决策层和医护人员提供更加具有准确性和时效性的决策支持和信息服务,有助于提升医护系统的精细化管理水平,拥有广阔的发展空间和前景。