关于胖客户端

简介: 关于胖客户端 目前HIS系统由于业务复杂,要进行大量的运算,而且HIS系统在运行一段时间后,数据量激增,数据库占用空间增长很快,导致HIS投入运行一两年后,反应速度急遽下降,在进行一个简单的保存或删除业务时都要花较长时间,甚至让使用的医务人员也难以忍受,这时就应该考虑采用胖客户端了。

关于胖客户端

目前HIS系统由于业务复杂,要进行大量的运算,而且HIS系统在运行一段时间后,数据量激增,数据库占用空间增长很快,导致HIS投入运行一两年后,反应速度急遽下降,在进行一个简单的保存或删除业务时都要花较长时间,甚至让使用的医务人员也难以忍受,这时就应该考虑采用胖客户端了。

所谓胖客户端,这里是指将常用的数据缓存到本地,在进行数据的新增、修改或删除时先对本地缓存或数据库进行操作,如果要保存提交时再连接远程的数据库服务器,一次性进行批量提交,这样不用频繁访问远程数据库,对于复杂的业务计算可在本地完成,而且现在的客户端计算机相对几年前硬件也好了很多,这样既能提高访问速度,也可以更少的访问远程计算机,减少远程计算机硬盘的负担。

这里有几个关键的步骤:

1.启动时,将所有要用到的字典数据下载到本地数据库中(SQLITE或ACCESS),下载完成后以后要访问这些数据,如收费字典、药品字典、ICD10字典、材料字典、设备字典等都只需要访问本地数据库了,可以提高访问速度,这就是所谓的用空间换时间。(只是启动系统时较慢,以后每次访问都很快,而一天一般都只启动一次系统,所以效率提高很多)

2.在对数据进行增删改查的时候,也要先下载对应的数据到本地表中,改变数据后,直接批量提交即可(可设置标志位,标识是新增、修改还是删除),如果只是查询,除了第一次稍慢外,以后每次查询因为都在本地,速度也会很快。

3.对于数据字典。如果有人实时的修改或增加了字典如药品字典数据,那么我们可以采取重新启动系统,重新下载一次到本地表(每次下载都清空以前的字典表),或者实时更新本地表,这时就需要采用消息机制,发送一条广播消息,实时从数据库服务器中下载修改了的字典数据(只下载其中新增或修改的几条即可),更新本地字典表。

 

 

 

 

 

 

 

 

 

 

 

 

                      

 

董继超

2016年3月11日     

 

相关文章
|
开发框架 JavaScript 小程序
vue,小程序,uni-app的生命周期?
vue,小程序,uni-app的生命周期?
|
8月前
|
Java 开发者
JAVA高手必备:URL与URLConnection,解锁网络资源的终极秘籍!
在Java网络编程中,URL和URLConnection是两大关键技术,能够帮助开发者轻松处理网络资源。本文通过两个案例,深入解析了如何使用URL和URLConnection从网站抓取数据和发送POST请求上传数据,助力你成为真正的JAVA高手。
152 11
|
11月前
|
JavaScript 前端开发
Vue学习之--------el与data的两种写法、MVVM模型、数据代理(2022/7/5)
这篇文章详细介绍了Vue中`el`和`data`的两种写法,解释了MVVM(Model-View-ViewModel)模型的基础知识,并探讨了数据代理的概念。文章通过代码实例和页面效果展示了这些概念的应用,还回顾了`Object.defineProperty`方法,并解释了Vue中如何实现数据代理。
Vue学习之--------el与data的两种写法、MVVM模型、数据代理(2022/7/5)
|
Ubuntu Linux
Linux查看系统发行版版本信息
在Linux中查看系统发行版版本信息有多种方法,包括使用`lsb_release`命令、查看`/etc/*-release`文件、`uname -a`、`/proc/version`、YUM或APT命令,以及特定发行版文件和命令。图形界面和在线资源也是获取信息的途径。不同的方法适用于不同系统配置。
422 0
|
11月前
|
Linux
在Linux中,如何在Linux中查看当前路径?
在Linux中,如何在Linux中查看当前路径?
|
12月前
|
分布式计算 运维 Serverless
E-MapReduce Serverless Spark 评测
EMR Serverless Spark服务对比传统引擎和自建集群展现高稳定性和性能,自动化运维降低成本。其敏捷性、自动扩缩容和阿里云生态集成提升了开发效率。不过,监控预警、资源调度和工具集扩展是潜在改进点。该服务可与MaxCompute、DataWorks、Quick BI联动,实现数据处理、管理、可视化一站式解决方案。
130 0
【C++系列】指针对象和对象指针的区别
这段内容介绍了C++中`ListNode`对象和指针的两种使用方式以及它们的区别。首先,`ListNode dummy(0); ListNode* cur = &dummy;创建了一个`ListNode`对象`dummy`在栈上,`cur`是`dummy`的地址。而`ListNode* dummy = new ListNode(0); ListNode* cur = dummy;`则在堆上分配了一个`ListNode`,`dummy`和`cur`都是指向该对象的指针。使用`&dummy`作为虚拟头节点简化链表操作,避免特殊处理。栈分配内存自动管理但生命周期受限,堆分配内存需手动释放且速度较慢。
112 0
|
数据可视化 API Python
Python绘图工具seaborn,教会你如何绘制更加精美的图形(二)
Python绘图工具seaborn,教会你如何绘制更加精美的图形(二)
234 0
|
SQL JSON 机器人
pytest+yaml设计接口自动化框架过程记录(一步一步记录如何设计,完结撒花),源码提供,视频教程
pytest+yaml设计接口自动化框架过程记录(一步一步记录如何设计,完结撒花),源码提供,视频教程
|
消息中间件 Java 中间件
JMS 和 AMQP
JMS 和 AMQP简介
303 0