网站数据库的优化

豆豆网   技术应用频道   2008年09月08日  【字号: 收藏本文

本文详细介绍网站数据库的优化

  与没有数据库的网站相比,数据库的存取会降低你的系统性能。但是大多数情况下,网站和数据库有密不可分的关系,正是数据库给站点提供了大容量、多样性、个性化等特色,并实现了很多特殊的功能。

  1.不要忘记给数据库做索引。合理的索引能立即显著地提高数据库整个系统的性能。可以参考有关SQL性能调试书籍,学会根据所需查询方式合理制作索引和根据索引方式改进查询语句。

  2.在适当的情况下,尽可能的用存储过程而不是SQL查询,因为前者已经过了预编译,运行速度更快。同时让数据库仅仅返回你所需要的那些数据,而不是返回大量数据再让ASP程序过滤。总之要充分和有效地发挥数据库的强大功能,让它按照我们的要求反馈给我们最合适和最精练的信息。

  3.在可能情况下我们应该使用SQL Server而不是Access。因为Access仅仅是基于文件的数据库,多用户性能很差。数据库连接尽量使用OLEDB和非DSN方式,因为这种连接方式有更好的并发性能。

  4.避免使用DAO(Data Access Objects)和RDO(Remote Data Objects)数据源,因为他们主要应用在单用户的处理系统里,ADO(ActiveX Data Objects)才是为Web应用设计的。

  5.建立记录集Rescordset的时候要清晰合理地设置数据游标(cursort)和锁定方式(locktype)。因为在不同的方式下 ASP会以不同的方式操纵数据库,其执行速度也有很大区别,尤其在大数据量的时候。如果你只想遍历数据,那么默认游标(前进、只读)会带来最好的性能。

  6.当你引用ADO变量的时候,会消耗较多的CPU周期。因此,如果在一个ASP页面中多次引用数据库的字段变量,一个较好的方式是将字段值先放入本地变量,然后可以直接调用本地变量来计算和显示数据。

  7.缓存ADO Connection对象也许不是一个好主意。如果一个连接(Connection)对象被存储在Application对象中而被所有ASP页面使用,那么所有页面就会争着使用这个连接。但是如果连接对象被存储在Session对象中,就要为每个用户创建一个数据库连接,这就减小了连接池的作用,并且增大了Web服务器和数据库服务器的压力。可以用在每个使用ADO的ASP页创建和释放ADO对象来替代缓存数据库连接。因为IIS内建了数据库连接池,所以这种方法非常有效,缺点是每个ASP页面都需要进行一些创建和释放操作。

作者:Web.CNLei.Net    责编:豆豆技术应用

正在加载评论...