优化-数据库

2016-01-29 16:37 3 1 收藏

优化-数据库,优化-数据库

【 tulaoshi.com - SQLServer 】

    与没有数据库的网站相比,数据库的存取会降低你的系统性能。但是大多数情况下,网站和数据库有密不可分的关
系,正是数据库给站点提供了大容量、多样性、个性化等特色,并实现了很多特殊的功能。
    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
页面都需要进行一些创建和释放操作。
    8ASP最强大和主要的用途之一就是对数据库进行操作,在数据库操作中我们要注意:不要任意使用“SELECT
* ......” 形式的SQL查询语句。应该尽量检索你所需要的那些字段。比如一个表中有10个字段,但是你只会用到其中的
一个字段(name),就该使用“select name from mytable”,而不是用“select * from mytable”。在字段数比较少
的时候,两者的区别可能并不明显,但是当一个表中拥有几十个字段的时候,数据库会多检索很多你并不需要的数据。在
这种情况下你最好不要为了节省打字时间或者害怕查找对应字段名称的麻烦,而要老老实实地使用“select id,name,
age... from mytable”。
    9及时关闭打开的记录集对象以及连接(Connection)对象。记录集对象和连接对象耗费系统资源相当大,因此它们的
可用数量是有限的。如果你打开了太多的记录集对象以及连接对象而最后却没有关闭它们,可能会出现ASP程序刚开始的时
候运行速度很快,而多运行几遍就越来越慢的现象,甚至导致服务器死机。请使用如下方法进行关闭:
      MyRecordSet.closeSet MyRecordSet=Nothing
      Set MyConnection=Nothing      
    10 连接数据库
仍然使用ODBC系统或者文件DSN来连接数据库,或者使用很快的OLEDB技术来连接。使用后者,当移动Web文件时,不
再需要修改配置。
OLEDB位于应用程序与ODBC层之间。在ASP页面中,ADO就是位于OLEDB之上的程序。调用ADO时,首先发送给OLEDB,然
后再发送给ODBC层。可以直接连接到OLEDB层,这么做后,将提高服务器端的性能。怎么直接连接到OLEDB呢?
如果使用SQLServer 7,使用下面的代码做为连接字符串:
strConnString = "DSN=;DRIVER={SQL SERVER};" & _
                "UID=myuid;PWD=mypwd;" & _
             &nbs

来源:https://www.tulaoshi.com/n/20160129/1499110.html

延伸阅读
1:磁盘寻道能力,以高速硬盘(7200转/秒),理论上每秒寻道7200次.这是没有办法改变的,优化的方法是----用多个硬盘,或者把数据分散存储. 2:硬盘的读写速度,这个速度非常的快,这个更容易解决--可以从多个硬盘上并行读写. 3:cpu.cpu处理内存中的数据,当有相对内存较小的表时,这是最常见的限制因素. 4:内存的限制.当cpu需要...
提高MySQL 查询效率的三个技巧小结 MySQL由于它本身的小巧和操作的高效, 在数据库应用中越来越多的被采用.我在开发一个P2P应用的时候曾经使用MySQL来保存P2P节点,由于P2P的应用中,结点数动辄上万个,而且节点变化频繁,因此一定要保持查询和插入的高效.以下是我在使用过程中做的提高效率的三个有效的尝试. l    ...
标签: ASP
  来源:中国计算机报 ASP是一个Web服务器端的开发环境,它提供了一种简单易学的脚本(VBScript或Jscript),并带有许多内置的对象,从而提供了一条简捷的编程之路。更为重要的是,ASP中提供了ADO对象,让程序员可以轻松操作各种数据库,从而可以产生和运行动态的、交互的Web服务应用程序。 目前,国内很多电子商务站点都采用了...
标签: 电脑入门
许多MAC用户喜欢将自己的照片保存在iPhoto上,不过在iPhoto中存放过多的照片也会导致我们的MAC运行速度变慢,因此优化iPhoto也是提高MAC运行速度的一个很重要的事。 优化方法: 1、打开终端(应用程序-》实用工具),进入存放照片的文件夹,需要输入以下命令: cd ~/Pictures/iPhoto Library 2、接着开始优化照片数据库,在终端输入以...
问题描述: 我们要访问的表是一个非常大的表,四千万条记录,id是主键,program_id上建了索引。 执行一条SQL: select * from program_access_log where program_id between 1 and 4000 这条SQL非常慢。 我们原以为处理记录太多的原因,所以加了id限制,一次只读五十万条记录 select * from program_access_l...

经验教程

331

收藏

14

精华推荐

大型ORACLE数据库优化设计方案

大型ORACLE数据库优化设计方案

Meilidemamaday

Oracle数据库及应用程序优化

Oracle数据库及应用程序优化

zheng930561305

优化SQL Server数据库查询方法

优化SQL Server数据库查询方法

shaihuangdu

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部