数据库优化(sql优化)
1.sql优化:
1.选择最有效的表名顺序(仅适用于RBO模式)将表上记录最少的那个表置于FROM的最右端作为基表。Oracle会首先扫描基表(FROM子句中最后的那个表)并对
记录进行排序
2.select 查询中避免使用'*',*被解析成具体的字段,浪费内存
3.减少访问数据库的次数
4) 使用DECODE函数来减少处理时间
-->使用decode函数可以避免重复扫描相同的行或重复连接相同的表
用Where子句替换HAVING子句
-->尽可能的避免having子句,因为HAVING 子句是对检索出所有记录之后再对结果集进行过滤。这个处理需要排序,总计等操作
-->通过WHERE子句则在分组之前即可过滤不必要的记录数目,从而减少聚合的开销
使用表别名 用EXISTS替代IN
在一些基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下,使用EXISTS(或NOT EXISTS)通常
将提高查询的效率.
合理使用索引以提高性能
虽然使用索引能得到查询效率的提高,但是索引需要空间来存储,需要定期维护.尤其是在有大量DML操作的表上,任意的DML操作都将引起索
引的变更这意味着每条记录的INSERT , DELETE , UPDATE将为此多付出4 , 5 次的磁盘I/O 因此定期的重构索引是有必要的.
索引的情况:
WHERE employee_id + 10 > 150; -->索引列上使用了计算,因此索引失效,走全表扫描方式
) 避免在索引列上使用NOT运算或不等于运算(<>,!=)
通常,我们要避免在索引列上使用NOT或<>,两者会产生在和在索引列上使用函数相同的影响。 当ORACLE遇到NOT或不等运算时,他就会停止
使用索引转而执行全表扫描。
WHERE NOT ( deptno = 20 );
WHERE deptno > 20 OR deptno < 20;
-->尽管此方式可以替换且实现上述结果,但依然走全表扫描,如果是单纯的 > 或 < 运算,则此时为索引范围扫描
避免索引列上使用函数 此时索引失效,使用全表扫描
WHERE子句中的连接顺序
ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。
6.SELECT子句中避免使用 ' * '
当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 '*' 是一个方便的方法。不幸的是,这是一个非常低效的方法。实际上,ORACLE在解析的过程中,会将'*' 依次转换成所有的列名,这个工作是通过查询数据字典完成的,这意味着将耗费更多的时间。
7.减少访问数据库的次数
当执行每条SQL语句时,ORACLE在内部执行了许多工作:解析SQL语句,估算索引的利用率,绑定变量,读数据块等等。由此可见,减少访问数据库的次数,就能实际上减少ORACLE的工作量。
8.使用DECODE函数来减少处理时间
17.使用表的别名(Alias)
用EXISTS替代IN
分享到:
相关推荐
MySQL数据库优化SQL篇.ppt,适用于企业级项目开发
数据库面试题索引sql优化.pdf+数据库SQL优化总结之百万级数据库优化.pdf 附赠Oracle高性能sql优化
数据库优化工具 sql优化工具 智能优化
判断SQL是否有问题时可以通过两个表象进行判断: 1、系统级别表象 • CPU消耗严重 • IO等待严重 • 页面响应时间过长 • 应用的日志出现超时等错误 可以使用sar命令,top命令查看当前系统状态。 也可以通过...
优化SQLServer数据库的50种方法
基于Mysql数据库的SQL优化 亲测
MySQL数据库优化SQL篇PPT课件.pptx
SQL2000数据库的优化及安全.pdf
SQL百万级数据库优化大全,是对sql各方面优化的总结和案例引导,避免全表扫描等方面的性能优化。
数据库优化 性能管理 性能优化 sql处理过程 sql优化 索引 全表扫描
MySQL数据库优化SQL篇PPT学习教案.pptx
sql数据库优化方案,可以学习一下。。。。。
优化SQL Server数据库的经验总结
SQL优化 SQL优化软件 SQL优化工具 很好用的工具,可以分析优化TSQL语句,oracle数据库语句优化工具
基于关系型数据库的SQL检索优化研究.pdf
sql性能优化
sqlserver数据库优化50法
我经常碰到有人会问一些数据库优化方面的问题,我觉得这是一最基本技能要求,特别是使用sql server 2005,对于sql server的优化,使用的专职dba或兼职dba们工作更轻松,效率更高了,但是还是有很多新人可能不大了解...
sql 语句优化 SQL Server数据库查询速度慢的原因有很多
数据库SQL优化大总结之 百万级数据库优化方案