ITPub博客

首页 > 数据库 > > SQL优化SQL优化

SQL优化SQL优化

作者:浪花小雨滴 时间:2023-05-29 17:38:10 0 删除 编辑

1概念

在实际项目中,为实现相同的目标,数据库运行效率可能会差距很大,甚至数据库宕机。为了解决这些问题,开发人员及DBA在保证数据质量的前提下,针对表、代码、程序及数据库等各个方面,进行的以提高效率为目的调试操作,即为优化。

2优化方向

1SQL代码优化
2表结构优化:分区表、索引(合理设置)、去除没必要的约束、去除没必要的字段、当前数据与历史数据分开存放(ODS层)
3程序逻辑优化:将复杂的大的步骤拆成简化的小的多个步骤(加中间表或临时表)
4数据库参数优化
5服务器硬件优化

3具体措施

1具体字段代替select*的*
2能用where筛选的不用having(where先运行可以减少后面操作的数据量)
3(not)exists代替(not)in,(伪:exists后的子查询查到一条就可在主查询中继续,in是将子查询所有数据查完才继续)
4in代替or
5表连接代替子查询
1避免在索引列中使用计算、函数、NOT、null、或发生隐式转换(否则索引失效)
2使用>=(<=)来代替>(<),(>或<不走索引)
3用>和<来代替<>,(不等于号<>不走索引)
4instr代替like,(%放在前面的时候如“%jian”一般不走索引)
5复合索引,在筛选时至少要引用到个索引列(否则索引失效)

4查看效率

在PL/SQL Developer中按F5查看执行计划和查询效率如上图

解读:

自右往左:列靠右的是先执行的,如“INDEX UNIQUE SCAN”

自上往下:都靠右的情况下,上面的比下面的先执行

INDEX UNIQUE SCAN:索引扫描

TABLE ACCESS FULL:全表扫描

耗费:指对CPU和IO(磁盘IO读写)的占用


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3157878/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: SQL 常用脚本整理
请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39846