软件 设计开发
计算机光盘软件 与应用
Computer CD Software and Applications 2012年第 2期
对医院数据库系统中 SQL语句优化的探讨
卢方建
(广 东省 阳江市人 民医院 ,广 东阳江 529500)
摘 要:经过 多年 的信息化建设,我们医院变成 了全面信息化 的现代化 医院。特别近两年 来,医院信 息系统 (HIS)、
实验室信 息 管理 系统 (LIS)以及影像 归档和通信 系统 (PACS)系统的上线,大大增加 了数据库的数据 量 ,影像归档和通
信 系统 (PACS)的 图片传输 对网络速 度 也提 出了很高的要 求。因此 ,SQL语 句的优化 就显得格外重要了。
关键词:医院信息系统 ;数据库 ;5QL
中图分类号:TP393 文献标识码 :A 文章编号 :1007-9599(2012)02—0202-02
Discussion on the Optimization of SQL
Statem ents in the Hospital Database System s
Lu Fangjian
(Yangjiang City,Guangdong Province Hospital of People,Yangjiang 529500,China)
Abstract:After years of information construction,our hospital has become a comprehensive inform ation technology of a
modem hospita1.EspeciMly in the past two years,HIS,LIS and PACS system political line,greatly increased the amount of data of the
database,and also made high demands On the PACS image transfer speed of the netw ork.Therefore,the optimization of the SQL
statem ent is particularly importan t.
Keywords:HIS;Database;SQL
医院经过多年的信息化 建设 ,由原来简单的以收 费为主 、各
医技科室独 立系统变 成 了全院全 面信息化、甚至看病无 纸化的程
度 。特别近两年来,HIS、LIS以及 PACS系统的上线,大大增加
了数据库的数据量,PACS系统的图片传输对网络速度也提出了很
高的要求,医 院一天的业务数据 由原来 的 lG不到,发展成现在的
10G 以上,而这庞大 的数据 ,每天的运行,都让服务器产生很大
的压力。特别在上午十点到十二点这段时间,由于门诊医生站的
大量使用,以及医技部门的频繁检查,使得系统运行速度越来越
慢,甚至出现超时、假 死机甚至 数据 出错等现象 ,这就严重 影响
到医院的正 常工作了。当我们在 服 务器上找 寻影响效率 原 因的时
候 ,发现有些查 询语句耗时特别多,使 用的频率也 不低 。经 过研
讨发现,这 些耗时多的语句可以进行优化,优化后的耗 时 明显降
低 了 。在大 量优化语句 工作后,总结 出了些经验 , 以此分享 。
一
、 优化的前提 :需求分析要尽量详 细
数据库模式 的设计是数据库设计的基础 ,要设计出一个好的
数据库系统,首先要从需求开始,在符合我们现实条件的前提下,
把需要的对数据处理 的功能都整合进去,并且要通过不断的修改
和反复的测 试才能使之完善。
二、优化的核心是规范 化的应用
关系模式的规范化,是在数据库 的设计周期中,对逻辑结构
设计优化的必要步骤 。什么是关系规 范化呢,它是指按统一标准
对关系进 行 优化 ,从而最大程度上能消除关系数 据库中的数 据冗
余、添加、删除和修改等操作异常,以提高关系的质量。
当我们没有处理好关系模式 的时候 ,就会出现删除异常、插
入异常和冗余度大等 问题 ,所以这一步骤非常重要。
在规范化理论中,关系 的各属性是相互关联、互相制约、互
相依赖的,成为一个 严 谨的整体 。按属性间相关 的关系,可大概
分为连接依赖、多值依赖和函数依赖 。按函数依赖又可分成传递
依赖、完全依赖和部分依赖 ,由以上的依赖关系可分出五种范式,
分别为第 1范式 、第 2范式、第 3范式 、Bc范式和第 4范式,如
果在关系模式中存在这些范式,就可在不同程度上避免更新异常、
插入和冗余 等 问题。
进行规范化做法是,首先确定数据依赖 ,按照数据依赖 的理
论,逐一分析这组关系模式 ,确定他们属于第几范式。其次进行
模式分解,逐步消除非 主属性对 码 的传递依 赖 和部分依 赖 。在分
解过程当中必须遵守相 互独立原则和无损分解原则。
无损分解指的是对关系模式分解时,原关系模型下任一合法
的关系值在 分解之后应 能通过 自然联接运算 恢复起来。
相互独立是指分解后的新关系之间相互独立,对一个关 系 内
容的修改不 应该影响到 另一关系。
三、优化技术在查询中的应用 ,
优化技术在查询中的重要性体现得更突出,虽然 DBMS也能对
查询进行优 化,但是查 询计划本身 的结构却 是 对查询效 率有着从
根本上的影 响。我们要 区分查询 计 划和查询 规 划的却别 ,前者是
用户所提交 的 SQL语 句的集合 ,后者是经过优 化处理之 后所产生
的语句集合 。现在大部分数据库产品都是采用基于代价的优化方
法,它对查 询规划代价 的估计,都 是根据系 统 字典表的信息得到
来,再择优而取。即使现在的数据库查询优化做得再好,根本的
SQL语句 差 了,效率 都无法提高上去的。所 以为了查询 语句有高
的执行效率 ,我们总结 了 以下心得 :
(一)索 引使用的时候要恰到好处
索引,就是为提高查询 效而生的,它是重要的数据结构 ,而
IBM的 ISAM索引结构就是主流数据库产品所采用 的索引结构。其
有 以下使用原则:
1.在条件表达式中经常用到的不同值较 多 的列上建 立检索,
在不同值少 的列上不建 立索引。
2.在频繁 进行排序或分组的列上建立索引。
3.在经常进行连接 、但没指定为外键的列上建立索引,而不
经常连接的字段则 由优 化器 自动生成索 引。例如在 zy~bhO表的
“在院情况”列上,仅有 “在院”和 “出院”两种不同情况的代
表值,就不必要使用索引。一旦强行建立索引,不仅提高不了查
询效率 ,反而使更新速度严重降低。当然 ,当待排序的列有多个 ,
我们还可以在这些列上 建立复合索 引。
(二)对 排序进行简 化甚至避免
应 当尽量避免或简化对大型表进行重复的排序 。为了优化器
避免排序的步骤,可以利用索引 自动以适当的次序产生输 出。
(三)要 消 除顺序存取大型表行数据的情况
对表的顺序存取,如果是在嵌套查询中,那么其查询效率将