APP下载

ASE数据库性能优化

2010-08-15周勇

科技传播 2010年18期
关键词:表达式语句应用程序

周勇

同济大学软件学院,上海 201804

ASE(Adaptive Server Enterprise) 是Sybase公司的性能优化的智能型数据库管理系统。作为企业级关系型数据库的典型代表,ASE提供了强大的联机事务处理能力和部分决策支持功能,非常适合于任务关键型及交易密集型应用。ASE大多运行在世界级证券公司、银行的关键核心系统中,如华尔街证券交易。选用ASE为数据库的应用系统的规模比较大,所以效率就尤为重要。如何设计一个能够满足用户当前与可预见的未来的各项应用要求、性能良好的数据库成为数据库应用系统设计中的一个核心问题。

1 ASE性能优化理论基础

性能是衡量一个应用程序或在同一环境下运行的多个应用程序的效率的尺度。性能通常以响应时间和吞吐量来衡量。ASE数据库的优化主要就是指通过对响应时间、吞吐量、硬件、及其运行的操作系统和应用程序的优化来避免存储器I/0瓶颈、提高CPU利用率和减少资源的竞争。但是我们不能用绝对的数量级指标来定义ASE数据库的优化。然而,我们可以用优化前后数据库的各种性能指标的对比来衡量数据库优化的结果。特别是SQL语句的执行速度,SQL语句带来的系统负担,应用的响应速度。因此,数据库实例级的调整,大多用来解决数据库结构性故障,相应的也能解决因为结构性故障带来的普遍性的性能问题。然而我们注意到,用户所真正关心的,切身感受到的执行程序响应慢的问题往往是不良的SQL语句,过期的统计数据和其导致的不良的执行计划,不良的数据表结构,不良的应用同步锁造成的。

2 影响ASE数据库性能的主要因素

2.1 硬件性能

高性能的CPU为数据库提供高承载和吞吐能力,来确保充分的I/O并行性,以支持大容量的并发事件;配置管家任务以提高CPU 利用率;足够的内存,以支持大量并发用户所需的缓冲池、代理程序和其他共享内存对象;以及足够大的网络带宽以支持工作负载。

2.2 存储结构的设计

数据库物理文件及逻辑对象的合理分布,将影响数据库的读写速度。优秀的存储结构和合理的存取路径可以使系统在开销最小的情况下达到最佳性能。例如,把一个表放在某个物理设备上,再通过SYBASE ASE段把它的非簇集索引放在一个不同的物理设备上,这样能提高性能。尤其是系统采用了多个磁盘阵列和数据分离技术的情况下,这样做的好处更加明显。还可以通过静态数据和业务数据相分离、将大的对象分割存放在多个磁盘上等措施来加快访问速度、减少I/O竞争。对DOL表和APL表的使用要合理,以减少锁定在存储上的不良影响。

2.3 操作系统(OS)性能

ASE虽然是自适应服务的,但是一个性能优良、可靠的操作系统能够适用于 Adaptive Server 的文件系统,CPU 可用性和分配到 Adaptive Server,从而使ASE的各项功能发挥的淋漓尽致。若没有优良的操作系统来保证ASE的运行效率,那么数据库的一切调整都将失去了意义。

2.4 QL语句的优化

查询的处理大都是基于SQL语句,SQL是用于存取数据的根本手段,因此,SQL语句的执行效率对数据库系统的性能起着决定性影响。高效的SQL语句能够成倍地提高应用程序能力。一个正确设计的数据库,由于不合理的程序设计及SQL语句,会带来大多数性能问题。所以,要根据数据操作类型对SQL语句进行分类,还应该对数据操作进行跟踪,找到那些最耗费资源和时间的操作,并对这些操作进行分析,找到优化的办法。

2.5 网络层的性能

网络层是与将用户连接到 Adaptive Server 的一个网络或多个网络相关。实际上,所有 Adaptive Server 用户都可通过网络访问其数据。网络通信量,网络瓶颈和网络速度,都会造成Adaptive Server 使用网络服务的效率低下。

3 ASE数据库性能优化方法

3.1 表空间设计的优化

在数据库中,数据都是存储在表空间中,所以对数据统计和分析的优化首先要对表空间设计和管理的优化。一般来说ASE表空间所跨的驱动器越多、越快,则潜在的性能将越好。在下面3种情况下,使用多个表空间就是很有用:1)控制I/O,如果这些表空间可以位于不同的驱动器上的话;2)使用大小不同的页面;3)控制缓冲池。若ASE数据库数据统计和分析系统建立时,设计良好的数据库管理表空间能够提供更好的性能。如果要以一种连续的方式来访问数据,那么采用更大的页面大小可以获得更好的性能;相反,如果对数据的访问采用的是随机方式,那么最好使用尽可能小的页面

3.2 调整数据库内存

充足的内存可减少磁盘I/O,因为内存访问比磁盘访问快很多,因此提高了性能。用户发出查询时,数据和索引页必须在内存中,或被读入内存中。如果页已驻留在内存中,则 Adaptive Server 不需要执行磁盘I/O。配置 Adaptive Server 时,内存是最重要的考虑因素。内存被各种配置参数、过程高速缓存和数据高速缓存使用。正确设置配置参数和高速缓存的值是获得良好系统性能的关键。合理分配内存缓冲区,可以大大加快数据查询速度、减少系统I/O操作。比如在那些随机访问或者很少访问的表之间共享一个缓冲池,就有可能将经常访问的行挤出到磁盘上,这样就会影响系统的效率。所以对内存缓冲区的合理设置,可以大大加快数据查询速度以及内存区的命中率,提高系统性能。

3.3 索引的优化

索引是提高数据库性能的最重要的物理设计元素:1)索引有助于避免表扫描。无需读取许多数据页,少数几个索引页和数据页就可以满足众多查询要求;2)对于某些查询,无需访问数据行即可从非聚簇索引中检索到数据;3)聚簇索引可以随机化数据插入,避免在表的最后一页插入热点;4)如果索引顺序与order by子句中的列顺序相匹配,索引可有助于避免排序;5)对于多数分区表,可以创建具有一个索引树的全局索引以覆盖整个表;也可以创建具有多个索引树的本地索引,其中每个树覆盖一个表分区。

虽然索引可加速数据检索,但由于多数数据更改要求更新索引,因此,它们会减慢数据修改的速度。要进行最佳索引编制,要求我们必须了解以下几点:1)访问非索引堆表、带聚簇索引表和带非聚簇索引表的查询行为;2)在服务器上运行的混合查询;3)分区表上本地和全局索引的相对优势;4)Adaptive Server 优化程序。

3.4 SQL语句的优化

良好的SQL语句可以被数据库重复使用从而减少分析时间、改善一个系统的性能、对提高数据库内存区的命中率、减少I/O访问等有着非常重要的意义。根据SYBASE ASE的预处理规则,SQL语句的撰写有如下几个优化原则:表达式写在计算符号的右边;在可能的情况下,提供更多的查询条件;尽量使用>=替代>,比如:>10,建议书写为>=11;按照索引的顺序书写查询条件。通常可以采用下面方法优化SQL对数据操作的表现。

1)模糊匹配的避免。虽然LIKE关键字支持通配符匹配,技术上称为正则表达式。但这种匹配特别耗费时间,尽量避免使用模糊匹配;

2)逻辑表达式的等价变换。如将多个OR连接的表达式转化为ANY表达式;将ANY或ALL转化为简单的比较表达式;将BETWEEN…AND转化为AND连接的表达式;将IN谓词表达式转换为OR连接的谓词表达式;

3)使用临时表空间,把表的子集在临时表中进行排序,有助于避免多重排序操作。为了加速SQL查询至少应该创建一个表空间供临时段单独使用;

4)限制动态SQL的使用,虽然动态SQL很好用,但是即使在SQL共享池中有一个完全相同的查询值,动态SQL也会重新进行语法分析;

5)尽量使用相同的或非常类似的SQL语句进行查询,这样不仅充分利用内存中的已经分析的语法树,还能使要查询的数据在缓冲池中命中的可能性也会大大增加。

3.5 异步预取的优化

异步预取通过预测某些为数据库活动明确定义的类所需的页(其访问模式是可预测的)来改善性能。在查询需要这些页之前发出对它们的 I/O 请求,这样大多数的页在查询处理需要访问它们时已经处于高速缓存中。为缓冲池选择最佳池大小和预取百分比是通过异步预取获得性能改善的关键。当多个应用程序同时运行时,一个经良好调优的预取系统可平衡缓冲池大小和预取限制,从而实现以下目标:1)改善系统吞吐量;2)提高使用异步预取的应用程序的性能;3)不降低未使用异步预取的应用程序的性能。

4 结 论

数据库设计过程中一般会受到多种因素的制约,有些要求往往是彼此矛盾的。因此,设计结果常常是有得有失。所以设计者必须根据相应的实际情况,综合应用以上技术,在基本合理的总体设计的基础上,做一些优化调整,力求最大限度地满足用户各种各样的需求,实现数据库的优化设计。影响性能的因素是如此的多,而实际的应用又各不相同,设计出一个通用的优化方案是不现实的,因此在实际系统开发和维护的过程中必须针对具体运行的情况,不断加以调整。

[1]周辉君.数据库系统优化方法研究[J].科技信息:科学教研,2008(17).

[2]袁长河.Sybase SQLserver性能优化技术初探[J].计算机系统应用,2001.

[3]刘斌,汤晓兵,刘震,李盛恩.基于数据库优化技术的查询应用[J].信息技术与信息化,2008(5).

猜你喜欢

表达式语句应用程序
重点:语句衔接
一个混合核Hilbert型积分不等式及其算子范数表达式
表达式转换及求值探析
删除Win10中自带的应用程序
浅析C语言运算符及表达式的教学误区
精彩语句
如何搞定语句衔接题
议C语言中循环语句
关闭应用程序更新提醒
三星电子将开设应用程序下载商店