还剩4页未读,继续阅读
文本内容:
目录TOC\o1-3\h\z\u[背景]2[目标]2[性能分析]2[优化内容和步骤]2[结果检验和日常核查]2[注明]3[背景]随着医院业务量的增长和所使用信息系统模块的增加,数据库容量增长很快,三级医院保留半年的数据情况下,可以达到25G-30G,且使用模块和接口的数量也在增加,现象是速度明显放慢,操作人员使用不顺畅,影响了窗口正常工作,带来软件性能低下的评价硬件方案设计时要考虑承载能力和生命周期;对性能问题的考虑应贯穿于__阶段的全过程,不应只在出现问题时才考虑性能问题[目标]性能调节的目的是通过将网络流通、磁盘I/O和CPU时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量最终通过对性能分析,制定相应的编程规范,引导__工作,提高产品质量[性能分析]分析对象
1、服务器
1、处理器峰值在85%以下
2、缓存、内存达到一个稳定值
3、磁盘检测磁盘错误信息和磁盘空间大小(!!)
4、网络跟踪网络流量
2、数据库
3、应用程序分析手段方式
1、性能跟踪器发现服务器性能瓶颈
2、检查数据库(使用dbcc工具)是否是数据库对象错误引起
3、SQLSERVERProfiler跟踪软件后台脚本性能,通过统计分析语句问题
4、主业务程序单元运行调试
5、其他跟踪分析工具[优化内容和步骤]
1、硬件配置
1、硬件性能降低原因
(1)资源不足,并且需要附加或升级的组件;局部硬件存在瓶颈
(2)资源共享工作负载不平均,需要平衡
(3)资源出现故障,需要替换
(4)资源不正确,需要更改配置设置
2、解决办法(升级的量级待定?)
(1)服务器升级硬件配置或增加服务器,更改软件配置
(2)升级网络设备,或更改逻辑结构
(3)客户端升级硬件配置
2、软件优化
1、配置优化1)负荷分摊不同系统的数据库分开配置服务器坚持将决策支持和联机事务处理OLTP查询混在一起2)服务配置1命名管道与TCP/IP的使用;2SQLServer内存分配设置3最大化吞吐量是否需要配置连接数量4配置虚拟内存配置合适的值,SQLServer最多能利用2GB虚拟内存,当给SQLServer分配的虚拟内存多于可用的物理内存时,会降低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__XID
(10)尽量不要使用TEXT数据类型
(11)tempdb的使用规范i.尽量避免使用distinct、orderby、groupby、h__ing、join、cumpute,因为这些语句会加重tempdb的负担ii.避免频繁创建和删除临时表,减少系统表资源的消耗iii.在新建临时表时,如果一次性插入数据量很大,那么可以使用selectinto代替createtable,避免log,提高速度;如果数据量不大,为了缓和系统表的资源,建议先createtable,然后insertiv.如果临时表的数据量较大,需要建立索引,那么应该将创建临时表和建立索引的过程放在单独一个子存储过程中,这样才能保证系统能够很好的使用到该临时表的索引v.如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除vi.慎用大的临时表与其他大表的连接查询和修改,减低系统表负担,因为这种操作会在一条语句中多次使用tempdb的系统表
(12)用exists替代in,可以提高查询的效率
(13)通过使用存储过程,可以将网络往返减到最小,存储过程中使用SETNOCOUNT可以减少返回给客户端的消息操作;使用小结果集返回;
(14)使用PreparedExecution来执行参数化SQL语句增加速度
(15)单个存储过程中处理分支不宜过多!5)修改前台处理过程
(1)避免重复执行的程序窗体、数据等,增加利用率
(2)减少频繁和数据库进行交互
3、管理优化我们在讨论软硬件优化的同时,医院管理上也要配合计算机来实现性能优化通过规范使用时间和权限减少系统负担;建立完善的跟踪机制,能提供完整的资料和快速定位客户端,便于问题跟踪[结果检验和日常核查]对优化后的结果进行检验,证明优化的有效性和程度,为下一次优化提供参考数据对数据库性能跟踪应该定期执行,积累日常数据,防范于未然[注明]附
一、性能跟踪计数器的可接受值资源对象\计数器建议的阈值注释磁盘PhysicalDisk\%FreeSpa__LogicalDisk\%FreeSpa__15%磁盘PhysicalDisk\\%DiskTimeLogicalDisk\%DiskTime90%磁盘PhysicalDisk\DiskReads/sec、PhysicalDisk\DiskWrites/sec取决于制造商的规格检查磁盘的指定传送速度,以验证此速度没有超出规格通常,UltraWideSCSI磁盘每秒可以处理50到70次I/O操作磁盘PhysicalDisk\CurrentDiskQueueLength主轴数加2这是即时计数器;观察在多个间隔上的值对于随时间变化的平均值,请使用PhysicalDisk\__g.DiskQueueLength内存Memory\__ailableBytes少于4MB考察内存使用情况在需要时添加内存内存Memory\Pages/sec20研究页交换活动页面文件PagingFile\%Usage70%以上与__ailableBytes和Pages/sec一起复查该值,了解计算机的页交换活动处理器Pro__ssor\%Pro__ssorTime85%查找使用处理器时间高百分比的进程升级到更快的处理器或__其他处理器处理器Pro__ssor\Interrupts/sec取决于处理器;每秒1000次中断是好的起点此计数器的值明显增加,而系统活动没有相应的增加则表明存在硬件问题标识导致中断的网卡可能需要__额外的适配器或者控制器卡服务器Server\BytesTotal/sec如果所有服务器的BytesTotal/sec和与网络的最大传送速度大致相等,则可能需要将网络分段服务器Server\WorkItemShortages3如果值达到该阀值,请考虑将DWORD项“InitWorkItems”(在启动期间分配给处理器的工作项数)或者__xWorkItems(服务器可以分配的接收缓冲区的最大数)添加到注册表(在HKEY_LOCAL___CHINE\SYSTEM\CurrentControlSet\Servi__s\Lan__nServer\Parameters下面InitWorkItems的范围可以是从1到512,同时__xWorkItems的范围可以是从1到65535以InitWorkItems的任何值以及__xWorkItems的值4096开始,并一直加倍这些值直到Server\WorkItemShortages阀值低于3有关修改注册表的信息,请参阅注册表编辑器帮助小心编辑注册表不当可能会严重损坏您的系统在更改注册表之前,应备份计算机上任何有价值的数据服务器服务器\分页池峰值物理RAM的数量此值是最大页面文件大小和物理内存数量的指示器服务器ServerWorkQueues\QueueLength4如果值到达此阈值,则可能存在处理器瓶颈这是即时计数器;观察在多个间隔上的值多个处理器System\Pro__ssorQueueLength2这是即时计数器;观察在多个间隔上的值
二、硬件配置参照
(一)在选择服务器时__的参数(针对三级医院最低默认值)
1、处理器
2、缓存、内存
3、磁盘
4、网络
(二)配置方案。