您的位置 首页 > 娱乐休闲

医院数据库的这些性能优化维护,你做了吗?

确保数据库高效率运行,满足业务响应时限是评估数据库运行状态的重要指标。数据库性能优化在数据库运维过程中占有重要地位,定期对数据库系统进行优化可以延长系统硬件换代周期,提高系统的投资有效性。



数据库主机资源优化和维护

数据库所在主机的资源是维持数据库正常运行和提供数据库运算的基础资源,主机资源的使用情况和消耗程度从一定程度上能反映数据库运行的状态是否正常、性能是否优秀。因此,对数据库所在主机的资源进行监控和维护也是DBA日常工作必不可少的环节。

从以下4个方面来维护和优化数据库主机资源的使用:

(一)数据库主机CPU资源

CPU使用率是评价数据库主机CPU资源是否足够的依据,但是更重要的因素是工作载荷。如在数据库主机工作负载高峰期间,80%的CPU利用率可能是正常使用的情况,而在数据库主机工作负载低峰时期,CPU利用率低至20%,这可能是不正常的情况。对于医疗行业的数据库来说,正常上班期间高峰期,CPU负载一般在50%~80%是正常的,如果过高则需要考虑进行优化或者增加CPU资源。

对于数据库主机而言,CPU资源主要消耗在执行最频繁的SQL语句和I/O上面,一旦发现在数据库中有进程占用过多的CPU资源导致数据库主机CPU资源不足,整体系统响应速度下降,可以考虑从以下几个方面来考虑优化:找到消耗CPU资源最多的数据库进程,通过分析数据库进程的动作——SQL语句,找到进程消耗CPU的原因并进行优化;增加数据库平台的CPU资源,如果通过优化后仍然发现数据库的运行确实需要较多的CPU资源,可以通过增加CPU扩展数据库平台的节点等方式来增加数据库平台的CPU资源;通过操作系统或数据库的工具来设定数据库对CPU资源分配规则优先级,例如启用系统资源管理器来调整数据库用户的资源分配策略。

(二)数据库主机内存资源优化

数据库主机的内存资源大部分都分配给两个部分使用:数据库的高速缓冲区和数据库的连接消耗。内存对于数据库的正常运行至关重要,恰当使用操作系统内存资源,是数据库系统高效运行的必要条件。关注物理内存的使用率,绝大部分操作系统都采用虚拟内存的技术来防止物理内存耗尽、操作系统出现崩溃的情况。但是虚拟内存实质上是机器物理内存加上磁盘上的一块空间(交换区)的总和,操作系统通过一定的机制来处理进程使用的内存段在物理内存和交换区之间的调度。如果系统中频繁地出现物理内存和交换区之间交换,将极大地消耗系统性能,导致系统处于不正常状态。

虚拟内存能扩展操作系统总可用内存,但是对数据库主机优化首要关注物理内存的使用情况,因为一旦物理内存即将耗尽,操作系统就会启动交换动作,将物理内存中的数据交换到交换区中,使得数据库使用效率降低。故当数据库主机物理内存使用率超过80%,就需要找出最占用内存的进程,如果不是数据库进程,则需要衡量该进程是否需要常驻操作系统,如果是数据库进程,则要进一步跟踪该进程执行的操作,分析内存占用过大的原因。关注数据库高速缓冲区是否被固定到物理内存中。由于虚拟内存的存在,数据库高速缓冲区则有可能在物理内存占用过大的情况下被交换到交换区中,一旦发生这种情况,数据库的性能会直线下降。因此,必须确保数据库高速缓冲区驻留在物理内存中,在发生物理内存不足的时候,系统只会将用户进程和操作系统其他进程等使用的内存交换到虚拟内存中。

(三)数据库主机数据空间资源优化

数据库主机数据空间优化,主要是指存放数据库文件所在的空间的I/O性能的优化,由于数据库的种类不同,存放数据文件的空间类型主要有:文件系统、裸设备和ASM磁盘组。

在数据库空间资源优化中,建议从以下几个方面来考虑:

1. 考虑使用SSD来提升I/O性能随着存储技术的发展,SSD磁盘的容量和可靠性已经达到工业化标准的要求,越来越多的存储可以配置SSD磁盘来提升存储整体的I/O性能。通常来讲,SSD磁盘有2种不同的用法:①采用SSD做FAST CACHE,成为存储的二级缓存;②采用SSD做存储池,利用分层软件将I/O较高的数据放在SSD磁盘上。

2. 数据空间尽可能横跨多的物理磁盘目前医疗行业的数据库系统一般都存放在磁盘阵列上,通常来说,磁盘阵列的Raid组中磁盘的数量在4~8个之间是能获得相对优化的性能,而数据库存放数据文件的空间可以考虑将多个Raid组中划分出来的LUN组成大的数据空间来存放数据,使得数据库的I/O分布在尽可能多的磁盘上来获得较高的I/O性能。


数据库资源优化和配置

随着数据库技术的发展和版本的更新,数据库本身被设计得越来越智能,数据库本身供DBA能配置和调整的部分是越来越少,很多数据库的配置在安装时候就已经做相对优化的设置。对数据库做一个简单的调整就能大幅度提升数据库性能的情况已经不会发生。当前数据库资源的优化主要着重于数据库初始化配置的优化和数据库的构架优化。

(一)数据库参数优化

在数据库参数配置里面,最重要的就是内存参数的配置,因为这部分的配置关系到数据库运行时I/O的性能,故数据库内存参数优化需要注意以下几点:

1. 物理内存使用比 每台服务器的物理内存是有限的,但是随着内存技术的发展,内存容量越来越大而价格越来越便宜,现在数据库服务器配置的内存至少都是64G以上。配置数据库占用内存空间的时候,占用最多的就是数据库高速缓存,用于将常用的数据块从磁盘上缓冲到内存中提升数据库整体I/O速度。从原则上来说,数据库高速缓存自然是越大越好,表示越多的数据块能在内存中缓存,但是实际上,服务器内存除了作为数据库缓存以外,还要负责数据库的进程堆栈空间、文件系统缓存、操作系统其他进程来占用。因此,建议配置数据库参数的时候,保持数据库缓存空间占用的内存不超过物理内存的一半即可,然后根据实际的情况来做调整。

2. 设置合理的数据库进程数和游标数 数据库的最大进程数量表示医院所有的客户端并发能同时开启多少进程来连接到数据库,如果该参数设置过小,就会发生部分进程无法连接数据库的情况,由于大部分数据库修改此参数都需要重启数据库,建议在创建数据库的时候,就根据未来5年以上的数据库规模来配置该参数,以免发生数据库无法连接的故障。数据库的游标其实用于缓存给数据库已经被编译好的SQL代码,如果同一个会话下次执行同样一条SQL语句,就可以从这个缓存的游标中直接执行,从而减少SQL语句的响应时间。通常数据库的游标设置为300 ~ 500就已经足够,设置过大可能会导致数据库内存中保留过多处于打开状态的游标而内存不足,影响数据库系统的正常运行。

3. 数据库的其他参数和特殊的参数 数据库的其他参数由于每种数据库都不太相同,但是每种数据库都有关于数据库内部的一些参数。这些参数一般不会出现在公开的技术文档中,有时被称为隐含参数。如果的确需要设置这些参数,都是有原因的。如为了解决数据库系统的bug,强行启动数据库等。对于这些隐含参数,除非你真正知道它的含义和作用(包括副作用),不要轻易去设置它们。

(二)数据库分区表维护

在数据库运行过程中,表中的数据量会不断增大,那么查询数据的速度就会变慢,最后反映到应用程序的时候就会显示性能下降。当数据库的数据表数据达到一定程度就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个数据段中,减少查询数据访问的物理块,提高应用程序的响应速度。为数据库建立合理的表分区能为数据库日常使用带来很多好处:改善查询性能,对分区对象的查询可以仅搜索自己关心的分区,提高检索速度;增强可用性,如果表的某个分区出现故障,表在其他分区的数据仍然可用;维护方便,如果表的某个分区出现故障,需要修复数据,只修复该分区即可;均衡I/O,可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能。

在医疗行业的信息化建设初期,数据量非常小,大部分的HIS开发商在对数据库表结构进行设计的时候都没有考虑使用分区表,那么随着近些年HIS数据的爆发性增长,越来越多的医院考虑将核心的业务明细表改造成为分区表来提高数据库响应速度和减少管理维护成本。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何提高数据库效率,如何提高作业效率,如何提高生产效率,如何提高背书效率”边界阅读