提高数据库效率

 

1、升级硬件。网络数据库系统由于是针对多用户并行设计的,需要消耗的内存资源很大。一般情况下首先应该考虑是不是由于硬件配置太低而引起的问题。

 

2、把数据、日志、索引放到不同的I/O设备上,增加读取速度。数据量(尺寸)越大,提高I/O越重要。

 

3、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。索引应该尽量小,使用字节数小的列建索引好,不要对有限的几个值的字段建单一索引。

 

4、查询耗时和字段值总长度成正比,所以数据库设计的时候可变长字段不能用CHAR类型,而是VARCHAR。有相当一部份开发人员喜欢可变长字符串也用CHAR,然后补空格。

 

5、重建索引DBCC REINDEXDBCC INDEXDEFRAG,收缩数据和日志 DBCC SHRINKDBDBCC SHRINKFILE。设置自动收缩日志。对于大的数据库不要设置数据库自动增长,它会降低服务器的性能。

 

6、在查询Select语句中用Where字句限制返回的行数,避免表扫描。如果返回不必要的数据,浪费了服务器的I/O资源,加重了网络的负担降低性能。如果表很大,在表扫描的期间将表锁住,禁止其他的联接访问表,后果严重。

 

7、尽可能不使用光标,它占用大量的资源。如果需要row-by-row地执行,尽量采用非光标技术,如:在客户端循环,用临时表,Table变量,用子查询,用Case语句等等。

 

8、用Profiler来跟踪查询,得到查询所需的时间,找出SQL的问题所在;用索引优化器优化索引。

 

9、注意UNionUNion all 的区别。尽量使用UNION all

 

10、注意使用DISTINCT,在没有必要时不要用,它同UNION一样会使查询变慢。

 

11、查询时不要返回不需要的行、列 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值