随着网络应用和电子商务的不断发展,各个站点的访问量越来越大,数据库规模也随之不断的扩大,数据库系统的性能问题就越来越突出,因此,如何对数据库进行调优至关重要:如何使用有限的计算机系统资源为更多的用户服务?如何保证用户的响应速度和服务质量?这些问题都属于服务器性能优化的范畴。
作为全球第一大数据库厂商,Oracle数据库在国内外获得了诸多成功应用,据统计,全球93%的上市.COM公司、65家"财富全球100强"企业不约而同地采用Oracle数据库来开展电子商务。我国很多企业、政府单位及电子商务网站也采用了Oracle作为数据库服务器。Oracle数据库服务器是高度可优化的软件产品,经常性的调整可以优化应用系统的性能,防止出现系统瓶颈。
数据库性能优化的基本原则就是:通过尽可能少的磁盘访问获得所需要的数据。要评价数据库的性能,需要在数据库调节前后比较其评价指标:响应时间和吞吐量之间的权衡、数据库的可用性、数据库的命中率以及内存的使用效率,以此来衡量调节措施的效果和指导调整的方向。
对Oracle数据库进行性能调整时,应当按照一定的顺序进行,因为系统在前面步骤中进行的调整可以避免后面的一些不必要调整或者代价很大的调整。一般来说可以从两个阶段入手:
1、设计阶段:对其逻辑结构和物理结构进行优化设计,使之在满足需求条件的情况下,系统性能达到最佳,系统开销达到最小;
2、数据库运行阶段:采取操作系统级、数据库级的一些优化措施来使系统性能最佳;
2. 在系统设计开发阶段调整数据库
为了充分利用Oracle数据库的功能特性,在设计信息系统时,数据库设计人员需要根据业务情况(如访问量或客户端数量)和现有资源状况(如数据库服务器的配置)考虑系统结构和数据库的逻辑结构的设计:
2.1调整应用程序结构设计。
即应用程序采用的是传统的C/S两层体系结构,还是B/W/D三层体系结构。不同的应用程序体系结构要求的数据库资源是不同的。
2.2恰当使用分区、索引及存档功能。
如果某种业务的数据量增长非常快,可以考虑存放该业务的数据库表是否使用Oracle数据库的分区功能;对于经常访问的数据库表是否需要建立索引;对于经常访问但是当业务流程完成后不再变动的数据可采用放入历史档案的方法来实现应用系统中访问尽可能少的数据量。
2.3恰当编写访问数据的SQL语句。
良好的SQL语句可以被数据库重复使用而减少分析时间;恰当的使用索引可使访问的数据块大大减少从而减少响应时间。应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率决定了Oracle数据库的性能。Oracle公司推荐使用Oracle语句优化器(Oracle Optimizer)和行锁管理器(row-level manager)来调整优化SQL语句。
2.4调整硬盘I/O
这一步是在信息系统开发之前完成的。数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O负载均衡。在磁盘比较富裕的情况下还应该遵循以下原则:
将表和索引分开;
创造用户表空间,与系统表空间(system)分开磁盘;
创建表和索引时指定不同的表空间;
创建回滚段专用的表空间,防止空间竞争影响事务的完成;
创建临时表空间用于排序操作,尽可能的防止数据库碎片存在于多个表空间中。
2.5确定数据块大小和存储参数。
由于数据库的块大小在数据库创建以后就不能在修改(除非重建数据库),因此为了减少数据链接和行迁移,又提高磁盘空间的利用率,在设计数据库时要确定合适的数据块大小和存储参数。通常我们是根据样例数据确定数据块大小,而根据业务现状和未来发展趋势确定存储参数。