SQL学习总结笔记
SQL语句的效率不仅是sql语句的设计还有一些其他的原因比如网络 、是否有视图、是否有索引等等。这里主要描述的是我个人对于sql设计方面优化的一些见解:
首先要说明一下的是数据库SQL解析顺序:
(1)from:可以理解为检查表是否存在
(2)where : {index-》否则正常读取-》查找到后去看group by-》存在即放在临时表中 (有些交错执行)} having属性
(3)select ;
查询优化需要做的是养成良好的sql习惯:
使用表的别名;
不要跨用户访问表;
具体化每个select的结果集,变相缩小搜索集,特别是进行表连接时注意开销;
使用分析函数减少数据的获取量例如Nvl(),decode()等;
减少select集的之间的乘法存在因为乘法意味着是在扩大搜索集,当然不可避免的还是要用;
避免在WHERE子句中使用in,not in,or 或者having;
最终的查询设计语句中不要出现select * from ;
DISTINCT,UNION,MINUS,INTERSECT,ORDER BY等关键词谨慎使用;
少用update多用commit;
写sql句子的时候大小写也是影响执行效率,最好统一格式;
SQL 语句的执行计划是可以自己设定的,这个也是影响sql效率的关键因素之一;
真正的提高性能的方法还有一种就是创建临时表空间(自己想吧,我也用的不多)。。。。。
脑子是空的不要紧,主要是不要进水······