操作系统相关优化
操作系统的性能的好坏直接影响数据库的使用性能,如果操作系统存在问题,如CPU过载、过度内存交换、磁盘I/O瓶颈等,在这种情况下,单纯进行Sybase数据库内部性能调整是不会显著改善系统性能的。
根据服务器硬件资源, 应尽可能使Sybase服务器使用资源最大化,让服务器上所有资源都来运行Sybase服务。在对Sybase数据库系统进行诊断和调整时,首先应通过操作系统的相关命令,检查CPU、内存、磁盘及网络环境。
CPU是服务器的一项重要资源,服务器良好的工作状态表现为在工作高峰时CPU的使用率高于90%。如果空闲时间CPU使用率就在90%以上,说明服务器缺乏CPU资源;如果工作高峰时CPU使用率仍然很低,则说明服务器CPU 资源还比较充足。
多数操作系统都用虚存来模拟计算机上更大的内存,它实际上是硬盘上的一定的磁盘空间。当实际的内存空间不能满足应用软件的要求时,操作系统就将用这部分的磁盘空间对内存中的信息进行页面替换,这将引起大量的磁盘I/O操作,使整个服务器的性能下降。为了避免过多地使用虚存,应加大服务器的内存。
I/O瓶颈是最容易识别的性能问题。跨所有可用的磁盘均匀地平衡I/O,可以减少磁盘存取的时间。对于较小的数据库和不使用并行查询选项的那些数据库,要确保不同的数据库设备跨可用的磁盘分布。
数据库系统相关优化
Sybase数据库性能调整主要包括:调整内存结构、调整IO、调整锁、调整事务、调整内核、临时数据库调整等等。关键是能够找到性能问题产生的根源,从而进行有效的调整。可通过如下多方面对Sybase数据库进行性能调整:
· 诊断实例内各部分及各部分之间的活动,如SESSION和SQL活动、内存使用、锁资源使用和磁盘I/O活动等等;
· 了解当前的I/O状况,决定是否应当将数据文件在磁盘间进行重新分布,以平衡总的磁盘I/O。
· 诊断实例活动,包括服务器、等待事件、锁、死锁等。
· 诊断内存使用情况和Sybase 参数,并根据诊断结果调整Sybase 参数。
· 维护数据对象的空间使用信息:分析各种数据对象的空间使用特性,避免优化器作出错误的判断,最终降低SQL的执行效能。
· 数据库碎片重组:数据块碎片、行迁移、索引树失衡等方面的碎片重组,这是一个高技术性、高风险性的艰巨的任务,不仅耗时长,而且因为要删除原数据而存在一定的危险性,但其实施可以显著提高效率。
· 调整数据分布:减少磁盘I/O总的等待时间,避免磁盘I/O不平衡。
· 空间使用管理和容量规划:了解Sybase数据库现有存储状态、空间分布,避免数据增长引起的数据库稳定性问题。
应用系统相关优化
对应用系统性能影响最大的是应用系统的设计和开发,应用的设计是Sybase性能中最重要的因素,SQL语句的好坏、索引的使用等等,都将对系统性能产生很大的影响。
在应用系统中,尤其在联机事务处理系统中,对数据查询及处理速度已成为衡量应用系统成败的标准。而采用索引来加快数据处理速度也成为广大数据库用户所接受的优化方法。
在良好的数据库设计基础上,能有效地使用索引是SQL Server取得高性能的基础,SQL Server采用基于代价的优化模型,它对每一个提交的有关表的查询,决定是否使用索引或用哪一个索引。因为查询执行的大部分开销是磁盘I/O,使用索引提高性能的一个主要目标是避免全表扫描,因为全表扫描需要从磁盘上读表的每一个数据页,如果有索引指向数据值,则查询只需读几次磁盘就可以了。所以如果建立了合理的索引,优化器就能利用索引加速数据的查询过程。但是,索引并不总是提高系统的性能,在增、删、改操作中索引的存在会增加一定的工作量,因此,在适当的地方增加适当的索引并从不合理的地方删除次优的索引,将有助于优化那些性能较差的SQL Server应用。实践表明,合理的索引设计是建立在对各种查询的分析和预测上的,只有正确地使索引与程序结合起来,才能产生最佳的优化方案。
SQL语句的好坏对性能产生很大的影响,可以通过会话跟踪,发现消耗系统资源多的会话,并从多方面报告这些会话的活动情况。包括会话中当前活动和最近活动的SQL语句、会话的资源消耗、会话等待的事件、会话的锁活动等等;通过SQL监控,列出当前主要消耗资源的SQL语句,并解释这些SQL的执行计划,帮助DBA判断需要进行调优的SQL。