浅析Sybase 数据库系统性能调优 “性能调优”是对应用程序的性能优化。SYBASE 数据库“性能调优”的主要目的是减少对系统公共资源的争用。对sybase 数据库系统的性能进行优化,是一项长期且受诸多因素影响的工作,它可划分为以下4 个层次: (1) 服务器层:包括对内存的合理分配,锁操作和临时表的使用,与系统配置关联的磁盘的I/O 性能。 (2) 数据库层::包括数据库对象的设计,索引的创建!表中数据类型的选择,数据库设备的分配及使用。 (3) 应用层:包括T_SQL 查询语句的优化,应用级封锁,事务和游标的使用。 (4) 运行环境层:包括硬件、操作系统和网络对总体性能的影响。 在数据库应用系统的管理维护中,运行环境引起的性能劣化只有通过硬件的升级才能得到优化,在系统硬件配置和网络设计确定的情况下,影响系统性能的主要是数据库层和服务器层。笔者就数据层和服务器层优化进行总结。 一、数据库表的优化 对于 Sybase11.9 以前的版本,由于数据库管理系统只提供了页级锁和表级锁,因此减少页的竞争将有助于提高系统的性能. 当大多数更新都发生在同一页上时,该页将成为热点,通过分析性能监测报告,我们可以得到系统的页竞争情况,例如下述报告表明有 99%的插入发生在堆表的最后一页上,并且正在等待锁: Last Page Loocks on Heaps Granted 3.0 0.4 185 88.1% Waited 4.0 0.0 25 11.9% 解决上述问题的方法有两种:一种是将表分区,表分区后可产生多个页链,这样就有多个“最后一页”来满足插入要求,从而减少并发插入时的相互等待;另一种是采用非簇类索引,将更新分布于表中不同的数据页上,但该方法会增加数据物理顺序的开销。 对于一些竞争非常激烈且记录条数较少的表,我们可以通过减少数据页或索引页上行的数量来进行优化,即将一条记录分布在一页上, 这样各进程需要的页都不相同,从而可以大大减少数据页的竞争。 在建表时Sybase 提供了 fillfactor 和max_roms_per_page 两个参数,分别用来改变索引页和数据页的填充程度。 在定义数据库表时,字段的数据类型选择是否合理对数据库的性能和操作有很大影响, (1)Identify 字段不要作为表的主键与其它表关联,这将会影响该表的数据迁移。 (2)TEXT 与IMACE 字段常用来存放二进制对象,这类数据的操作相比其它数据类型较慢,因此要避免使用。 建立一个好的索引对优化数据库的查询性能是非常重要的。要设计一个合理,索引关键就在于创建什么字段作为索...