admin 管理员组文章数量: 1184232
2024年5月1日发(作者:thinkphp5怎么下载)
维普资讯
第27卷
计算机应用
Vol-27
2007年12月
Computer Applications
Dec.2o07
文章编号:1001—9081(2007)s2—0263—02
基于B/S结构的HIS数据库优化分析
贺志强,唐宁九
(四川大学计算机学院,成都610065)
(hejie4228688@163.com)
摘 要:根据目前医院信息系统(HIS)数据库面临的问题,介绍基于B/S结构的HIS数据库优化
方法,着重介绍索引在数据库中的应用以及设计SQL语句时的注意事项,并结合具体情况测试了两
种分页算法,得出了海量数据下的最佳算法。
关键词:数据库优化;索引;分页算法
中图分类号:TlY311.13 文献标志码:A
0 引言
具体情况下是否建立索引的情况如表1所示。
表1建立索引的情况说明
目前,数据库技术已经成为医院的重要资源,借助它可以
科学地保存和管理医院大量复杂的数据信息。但由于缺乏医
院信息规划方面的经验,使得系统开发人员只注重软件功能
完整性方面的测试和完善,而忽略了越来越多的海量数据对
系统性能方面的压力。所以,很多HIS在经过一段时间使用
后,系统响应速度越来越慢,用户时常要忍受长时间来等待,
并且,死锁和宕机现象时有发生。因此,在数据库建模,设计
2 应用程序性能优化
等环节上要不断优化数据库,以期得到更好的效率。
I-I/S系统一般都是海量数据,SQL语句的优劣在速度上差
数据库的优化可以通过对网络、硬件、操作系统、数据库参
别可达上百倍乃至更多,所以要编写出高质量的SQL语句,提
数和应用程序的优化来进行。据统计,对网络、硬件、操作系统
高系统的可用性。以下是优化SQL语句的几个注意事项:
和数据库参数进行优化只能提升4JD%左右数据库系统性能,
1)避免使用不兼容的数据类型。例如float和int,char和
而应用程序的优化则能对数据库系统性能提升60%以上。
val"char,binary和varbinary是不兼容的,数据类型的不兼容无
1 数据库性能优化
法使用预先定义好的索引。
2)尽量避免在WHERE条件里使用非聚合表达式。非聚
数据库设计时应用程序设计的基础,其性能直接影响应
合表达式很难利用到索引,反而有时会导致查询速度大大下
用程序的性能。数据库中的表是最基本的,实际中一般按照
降。
第三范式的标准进行规范化。但是,有时将一个表拆分为多
3)尽量避免在WHERE子句中对字段进行函数或表达式
个表,查询时需要多表连接,这就降低了查询进度。所以,有
操作。因为若WHERE子句中存在一个函数或表达式,优化
时要通过反规范化分割表,保留冗余列,增加派生列等来分别
器就不能使用分布统计信息。
提高每个表的查询速度。
4)避免使用LE兀'JOIN和NULL。LE兀'JOIN消耗很多
建立索引是加快查询速度最有效的手段。在HIS数据库
资源,因为它包含与NULL(不存在)数据匹配的数据。因此
设计中根据需要针对基本表上最有可能查询的属性建立索
在构造查询语句时尽量避免使用LEFT JOIN和NULL。
引。系统在存取数据时会自动选择合适的索引作为存取路
5)尽量避免在索引过的字符数据中,使用非打头字母搜
径,以加快查询速度。一个基本表可以针对不同的属性建立
索。
多个索引。但注意:索引并不是越多越好,应正确规范建立适
6)避免对大型表进行全表扫描。
合实际情况的索引。
7)尽量避免使用“SELECT…,按照实际,需要什么才提
建立索引应注意以下几点:
取什么。
1)主键时常作为WHERE子句的条件,应在表的主键列
8)利用临时数据库。在查询多表、有多个连接、查询复
上建立索引,尤其当经常用它作为连接时;
杂和数据要过滤时,可以建临时表(索引)以减少I/0。但缺
2)在查询经常用到的所有列上创建非聚集索引;
点是增加了空间开销。
3)在经常进行连接,但没有指定为外键的列上建立索
引,而不经常连接的字段则由优化器自动生成索引;
3分页算法的实现
4)在频繁进行范围查询、排序或分组的列上建立索引;
分页算法单独在B/S结构中它占有很重要的地位,它的
5)比较窄的索引具有比较高的效率。 好坏直接决定着使用者对整个系统的评价。而且基于B/S
收稿日期:2007—04—09;修回日期:2007—06—07。
作者简介:贺志强(1983一),男,四川安县人,硕士研究生,主要研究方向:软件工程、数据库; 唐宁九(1960一),男,四川成都人,教授,博
士,主要研究方向:软件工程、计算机网络。
维普资讯
计算机应用
结构的HIS,分页浏览功能必不可少。可以利用ADO自带的
分页功能来实现分页。但这种分页方法仅适用于较小数据量
的情形,因为游标本身有缺点:游标是存放在内存中的,很耗
费内存。而对于HIS这种大量的数据库系统,ADO的分页速
(SELECT TOP
2007血
((PAGECODE一1)・PAGESIZE)ID FROM TABLE
ORDER BY ID)asn
ORDER BY ID
度和效率是让人无法忍受的。
如果考虑用DataGrid来分页,或者是用DbDataAdapter.
3.3 两种方法的对比测试
在HIS中,我们选择了以ID为主键,但并不是聚集索引
来为排序列,取ID,PATIENT—NAME,INSPECTION—TIME,
DOC,RESULT字段,测试上面两种分页方案的执行速度,具
体见表2。
从表2可以看出,第一种方案在10000页以上速度就降
Fill填充DataSet来分页,虽然也是可以实现的,但是它们的
效率都不高,下面两种另外的算法并对它们做了测试。
3.1基于N-M的分页算法
根据从数据表中取出第n条到第m条的记录的方法,该
下来了,第二种方案没有大的降势,空间还很足。以上测试数
方法为:
据来自华西医院。测试服务器为联想T168。配置为CPU频
SELECTTOPm—n+1・
率(MHz):1860,内存:1 GB,硬盘:250 GB。
FR0M TABLE
WHERE(ID NOT EXISTS
表2测试结果 ms
(SELECT TOPn一1 ID FROM TABLE))
ID为表的关键字
应用到HIS系统中,可以改造为:
SELECT TOP PAGESIZE}
FROM TABLE
WHERE(ID NOT EXISTS
(SELECT TOP
PAGESIZE・PAGECOUNT ID FROM TABLE
ORDER BY ID))
0RDER BY ID
这个存储过程有一个很大的缺点,就是它含有NOT
4 结语
EXISTS字样,但即使这样,用TOP结合NOT EXISTS的这个
本文结合项目的实例,对基于B/S的HIS数据库做了系
方法还是比用游标要来得快一些。 统分析,提出了一些经验总结和注意事项。HIS数据库优化
使用SQL Server中的TOP关键字却是一个非常明智的
是一个系统工程,涉及很多方面,设计者要综合考虑,认真分
选择。因为分页优化的最终目的就是避免产生过大的记录
析,根据实际情况来最大限度的保证系统的稳定性和高效性。
集,通过TOP即可实现对数据量的控制。
参考文献:
3.2 MAX分页算法
[1]萨师煊,王珊.数据库系统概论[M].3版.北京:高等教育出版
在分页算法中,TOP可以提高查询速度,而NOT EXISTS
社,2000.
会减慢查询速度,经过测试,NOT EXISTS和NOT IN的效率
[2] 钱文波,谢金宝.SQL Server数据库性能优化技术[J].微型机与
都相差不大。所以要提高我们整个分页算法的速度,就要彻
应用,1999,18(3):7—9,22.
底改造NOT EXISTS,用其他方法来替代它。
【3]HOFFER J A,PRESCOTr M B,McFADDEN F R.现代数据库管
我们可以用max(字段)来提取某个字段中的最大值,所
理(M].6版.北京:机械工业出版社,2004:221—222.
以如果这个字段不重复,那么就可以利用这些不重复的字段
f4]赵颖,沈金龙.基于SQL Server的应用程序优化f J].电子工程
的max作为分页的参照物。在这里,可以用操作符“>”号来
师,20oo,26(5):7—9.
完成这个工作。于是便得到下面的分页方案:
[5]CONNOLLY TM,BEGG C E.数据库设计教程[M].2版.北京:
SELECT TOP PAGESIZE
机械工业出版社。2005:110—119.
FR0M TABLE
[6] KRIEGEL A,TRUKHNOV B M.SQL宝典[M].北京:电子工业出
WHERE ID>(SELECTmax(ID)FROM
版社,2003:187—242.
(上接第262页)
参考文献:
hing[C]//Proceedings of the 31 st International Conference on Very
[1] AL—KHALIFA S,JAGADISH H V,KOUDAS N,et a1.Struetural
Large Data Bases.New York:ACM Press.2005:193—204.
joins:a primitive for efficient XML query pattem matching【C]//
[5]TATARINOVI,VIGLAS S D,BEYER K,et a1.Storing andquer-
Proceedings of the 1 8th International C0fIference oll Data Engineer-
ying ordered XML using a erlational database system[C]//Proceed-
ings of the 21 st ACM Symposium on Principles of Datbaase Systems
ing.Los Alamitos:IEEE Computer Society,2002:141—152.
(PODS).New York:ACM Pre8s,2002:204—215.
[2】 万常选,刘云生,徐升华,等.基于区间编码的XML索引结构的
[6]HARDER T,HAUSTEIN M,MATHIS C,et a1.Node lbaeling
有效结构连接[J].计算机学报,2005,28(1):113—127.
schemes for dynamic XML documents reconsidered f J].Data&
【3) 罗道锋,孟小峰,蒋瑜.XML数据扩展前序编码的更新方法[J],
Knowledge Engineering,2007,60(1):126—149.
软件学报,2005,16(5):810—818.
【7] Centrum voor Wiskunde en Informatiea.XMark—An XML bench—
[4]LU J H,LING T W,CHAN C Y,et a1.From region encoding to
mark projeet[EB/OL].(2003一O6—28)[2007—5—15】.http://
extended Dewey:on efficient processing of XML twig pattern mate—
monetdb.cw1.n1/xml/.
版权声明:本文标题:基于BS结构的HIS数据库优化分析 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1714519890a683608.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论