医院信息系统软硬件性能优化方案
目录
[背景]2
[目标]2
[性能分析]2
[优化内容和步骤]2
[结果检验和日常核查]2
[注明]3
[背景]随着医院业务量的增长和所使用信息系统模块的增加,数据库容量增长很快,三级医院保留半年的数据情况下,可以达到
25G-30G,且使用模块和接口的数量也在增加,现象是速度明显放慢,操作人员使用不顺畅,影响了窗口正常工作,带来软件性能低下的评价。
硬件方案设计时要考虑承载能力和生命周期;对性能问题的考虑应贯穿于开发阶段的全过程,不应只在出现问题时才考虑性能问题。
[目标]性能调节的目的是通过将网络流通•磁盘I/O和CPU 时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量。
最终通过对性能分析,制定相应的编程规范,引导开发工作,提咼产品质量。
[性能分析]分析对彖:
一. 服务器
1.处理器:峰值在85%以下
2.缓存.内存:达到一个稳定值
3.磁盘:检测磁盘错误信息和磁盘空间大小(! !)
4.网络:跟踪网络流量
二. 数据库
三. 应用程序分析手段方式:
1.性能跟踪器:发现服务器性能瓶颈
2.检查数据库(使用dbcc工具):是否是数据库对象错误引起
3.S QL SERVER Profiler:跟踪软件后台脚本性能,通过统计分析语句问题
4.主业务程序单元运行调试
5.其他跟踪分析工具
[优化内容和步骤]
一. 硬件配置
1.硬件性能降低原因(1)资源不足,并且需要附加或升级的组件;局部硬件存在瓶颈(2)资源共享工作负载不平均,需要平衡。
(3)资源出现故障,需要替换。
(4)资源不正确,需要更改配置设置。
2.解决办法(升级的量级待定?)(1)服务器升级硬件配
置或增加服务器,更改软件配置(2)升级网络设备,或更改逻辑结构(3)客户端升级硬件配置
二. 软件优化
1.配置优化1)负荷分摊:不同系统的数据库分开配置服务器。
坚持将决策支持和联机事务处理(OLTP)
查询混在一起2)服务配置:(1)命名管道与TCP/IP的使用;(2) SQL Server内存分配设置(3)最大化吞吐量:是否需要配置连接数量(4)配置虚拟内存:配置合适的值,SQL Server最多能利用2GB虚拟内存,当给SQL Server分配的虚拟内存多于可用的物理内存时,会降低SQL的性能(5)使用哪种类型的磁盘硬件,如RAID (独立磁盘冗余阵列)设备。
(6)如何将数据放置在磁盘上:怎样放置文件组(7)如何适当设置数据库的所有配置参数以使数据库很好地运行:例如简单日志等3)缩减数据库:导出数据到历史库.年表,收缩数据库;尽可能减少日表数据和正式库数据4)优化tempdb性能,合理配置文件增长比,初始化大小防止频繁扩展。
对于日志文件放到单独的磁盘上,定期清理日志文件。
2.程序优化1)适当修改索引:针对我们程序读写特点,增加或减少索引,通过跟踪执行计划分析。
2)重建索引3)优化处理流程,单元处理流程,和业务处理流程4)修改SQL语句:(1)能用表的就不用试图,视图屮多用静态表(2)无须用年表的就不要关联年表(3)多表关联时可以考虑分步骤关联
(4)只在必要时才使用游标(5)不要使用SELECT * (6)不要给“性别”列创建索引(7)使用适当的事务,尽可能简短(8)不要使用INSERT导入大批的数据(9)在细节表中插入纪录时,不要在主表执行SELECT MAX (ID)
(10)尽量不要使用TEXT数据类型(11) tempdb的使用规范:
i. 尽量避免使用distinct, order by. group by. having, join, cumpute,因为这些语句会加重tempdb的负担。
i i.避免频繁创建和删除临时表,减少系统表资源的消耗。
i ii. 在新建临时表时,如果一次性插入数据量很大,那么可以使用select into代替create table,避免log,提高速度;如果数据量不大,为了缓和系统表的资源,建议先create table,然后inserto i v.如果临时表的数据量较大,需要建立索引,那么应该将创建临时表和建立索引的过程放在单独一个子存储过程屮,这样才能保证系统能够很好的使用到该临时表的索引。
v .如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除vi.慎用大的临时表与其他大表的连接查询和修改,减低系统表负担,因为这种操作会在一条语句屮多次使用tempdb的系统表。
(12)用exists替代in ,可以提高查询的效率(13)通过使用存储过程,可以将网络往返减到最小,存储过程屮使用SET N0C0UNT可以减少返回给客户端的消息操作;使用小结果集返回;
(14)使用Prepared Execution来执行参数化SQL语句增加速度(15)单个存储过程中处理分支不宜过多!5)修改前台处理过程
(1)避免重复执行的程序:窗体.数据等,增加利用率
(2)减少频繁和数据库进行交互
三. 管理优化我们在讨论软硬件优化的同时,医院管理上也要配
合计算机来实现性能优化。
通过规范使用时间和权限减少系统负担;
建立完善的跟踪机制,能提供完整的资料和快速定位客户端,便于问
题跟踪。
[结果检验和日常核查]对优化后的结果进行检验,证明优化的有效性和程度,为下一次优化提供参考数据。
对数据库性能跟踪应该定期执行,积累日常数据,防范于未然。
[注明]附:
一.性能跟踪计数器的可接受值资源对象\计数器建议的阈值注释磁盘Physical Disk\% Free Space Logical Disk\% Free Spacelo% 磁盘Physical Disk\\% Disk Time Logical Disk\% Disk Time90% 磁盘Physical Disk\Disk Reads/sec. Physical Disk\Disk
Writes/sec 取决于制造商的规格检查磁盘的指定传送速度,以验证此速度没有超出规格。
通常,Ultra Wide SCSI磁盘每秒可以处理50
到70次I/O操作。
磁盘Physical Disk\Current Disk Queue Length 主轴数加2这是即时计数器;观察在多个间隔上的值。
对于随时间变化的平均
值,请使用Physical Disk\ Avg. Disk Queue Lengtho
内存Memory'Ava订able Bytes少于4 MB考察内存使用情况在需要时添加内存。
内存MemonAPages/sec20研究页交换活动。
页面文件Paging File\% Usage70% 以上与Available
Bytes和Pages/sec 一起复查该值,了解计算机的页交换活动。
处理器Processor'% Processor Time85%查找使用处理器时间高百分比的进程。
升级到更快的处理器或安装其他处理器。
处理器Processor\Interrupts/sec取决于处理器;每秒1000次屮断是好的起点此计数器的值明显增加,而系统活动没有相应的增加则表明存在硬件问题。
标识导致屮断的网卡。
可能需要安装额外的适配器或者控制器卡。
服务器Server\Bytes Total/sec如果所有服务器的Bytes Total/sec和与网络的最大传送速度大致相等,则可能需要将网络分段。
服务器Server\Work Item Shortages3如果值达到该阀值,请考虑将DWORD项^InitWorkltems"(在启动期间分配给处理器的工作项数)或者MaxWorkltems (服务器可以分配的接收缓冲区的最大数)添加到注册表(在
HKEY_LOCAL_\IACHINE\SYSTEM\CurrentControlSet\Services\Lanm anServer\Parameters 下面)。
InitWorkltems 的范围可以是从1 到512,同时MaxWorkItems的范围可以是从1到65535。
以InitWorkltems的任何值以及Max Workitems的值4096开始,并一直加倍这些值直到Server\Work Item Shortages阀值低于3。
有关修改注册表的信息,请参阅注册表编辑器帮助。
小心•编辑注册表不当可能会严重损坏您的系统。
在更改注册表之前,应备份计算机上任何有价值的数据。
服务器服务器\分页池峰值物理RAM的数量此值是最大页面文件大小和物理内存数量的指示器。
服务器Server Work Queues\Queue Length4 如果值到达此阈值,则可能存在处理器瓶颈。
这是即时计数器;观察在多个间隔上的值。
多个处理器System\Processor Queue Length2这是即时计数器;观察在多个间隔上的值。
二.硬件配置参照
(一)在选择服务器时关注的参数(针对三级医院最低默认值):
1.处理器:
2.缓存.内存:
3.磁盘:
4.网络:
(二)配置方案:。