SQL优化方法

5 篇文章 0 订阅
1 篇文章 0 订阅

SQL数据库常用优化方法

1、硬件方面  

硬件性能不足会导致数据库性能降低,应及时升级硬件保证硬件性能。

扩大服务器内存;增加CPU个数;提高网络速度;把数据、日志、索引放到不同的I/O设备上,增加读取速度:DB Server和Application Server分离

2、创建索引

根据查询条件,建立索引,优化索引、优化访问方式。Create Index  I on table(a,b)。当字段经常作为查询条件、排序的字段、与其他表关联的字段,并且字段内容重复性不高、不经常做插入删除等操作时,创建索引。 有单一索引和组合索引。

3、限制结果集

根据查询需要,限制结果集的数据量

查询数据量过大要多次查询;不要选择不必要的列;用where限制返回的行数;

用select   top   10 来限制用户返回的行数;用Set RowCount来限制操作的行

4、查询优化,避免全表扫描

'a%'   使用索引  '%a'   不使用索引;注意优化索引

5、少用视图

视图效率较慢,可以用存储过程来代替。

6、查询语句的优化

用Profiler来跟踪查询,得到查询所需的时间,找出sql问题所在

没有必要不用Distinct、OrderBy,可考虑在客户端替代执行

Union和Union all的区别;Between和IN的区别。根据具体情况选择相应关键字。(In后面的值列表中,出现频率高的放在前面,频率低的放后面,减少判断次数)

7、减少表的锁定

如insert into语句;减少锁定、死锁。

8、对于大的数据库不要设置数据库自动增长,它会降低服务器的性能;log要自动压缩。
9、一般在GROUP   BY   个HAVING字句之前就能剔除多余的行,所以尽量不要用它们来做剔除行的工作。他们的执行顺序应该如下最优:
      select的Where字句选择所有合适的行,Group   By用来分组个统计行,Having字句用来剔除多余的分组。这样Group   By   个Having的开销小,查询快.对于大的数据行进行分组和Having十分消耗资源。如果Group   BY的目的不包括计算,只是分组,那么用Distinct更快
10、一次更新多条记录比分多次更新每次一条快,就是说批处理较好
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值