sql语句简单优化
sql语句简单优化
1. 避免使用*号
*在解析的过程中首先会转换成所有的列名,并通过查询数据字典完成,会消耗更多的时间
2.使用别名
能精确查找表的字段,避免多个表中字段相同的情况
3.where 子句中的连接顺序
where子句是先执行后面的子句,从右往左执行,应该把能缩小范围的语句放在后面
4.使用>=代替>
# 高效
select * from student where score>=90;
# 低效
select * from student where score>89;
5.使用 truncate 代替 delete
delete如果没有commit操作,回滚段中会存放删除操作恢复的信息
truncate回滚段不再存放任何可被恢复的信息,因此很少的资源被调用,,执行的时间也会很短
6.尽量多使用commit
使用commit会释放以下资源
回滚段上用户回复数据的信息
被程序语句获得的锁
Redo log buffer 中的空间
Oracle为管理上述3种资源中的内部花费
7.避免在索引列上使用函数
# 假设sal列上建立的索引
# 低效
select * from dept where sal*2>2500;
# 高效
select * from dept where sal>2500/2;