oracle的sql优化总结

HK学习笔记

 

oracle的sql也是遵循几点原则

1.能用oracle自带函数,或者用他的函数可以实现的效果,尽量用oracle的函数,因为他的函数的算法和实现函数的语言都是效率非常高的,一般情况下比我们写的要高效。

 

2. sql的关键字都大写,因为oracle 再执行sql时,会把所有的sql 转换为大写来执行

 

3.select 句子中最好不要出现* ,要写具体的列名,不然 oracle会一次解析每个字段,费时。

 

4.from 的表,如果是一张或者两张表,把条数最少的放在后面,如果是三张以上,把和其他有交叉的表的放在后面,所谓交叉,就是和其他表有关联的的意思,因为oracle的扫描是从下网上从右往左,这样 的结果是可以尽量的少扫描表,

 

5.where 把可以过滤掉多条数据的条件往后放,一次类推

 

6.删除重复记录的最好办法是用rowid

 

7.使用decode函数减少 处理时间

 

8.用truncate table表明 代替delete from表名,因为第一个会删除表所对应的表空间

 

9.用where过滤,少用having过滤

 

10.使用表的别名也可以提高效率

 

11.用 EXISTS 替代 IN 、用 NOT EXISTS 替代 NOT IN

 

12.使用索引来提高查询效率,但是索引建立的时候很有将就,并不是每个字段都建立,那样反而会降低效率

 

13.用 EXISTS 替换 DISTINCT

 

14.避免在索引上使用计算那些函数

 

15.用>= 来代替> ,因为有个确切的边线,可以让oracle跟好的确定边线

 

16.避免在索引列上用not ,因为这回让索引失效,也要避免使用is null ,is not null 操作

 

17.用union来代替 or 操作,如果可以的话

 

18.用in 代替or ,如果可以的话

 

19.用union all 代替 union ,如果可以的话 ,因为union 要去除重复的列,还要排序,费时

 

20.where句子中把过滤掉数据最的条件放在最后,一次往前罗列,因为oracle的检索顺序是从下网上,从右往左,

 

21. 对于以上的操作都没什么 疑问的话,那就要借助plsql 这样的开发工具,去查看我们 写的sql 的解释执行计划,这个才是最后敲定你的sql 效率的依据,

 

22.在oracle上 尽量不要使用hints提示,因为我们的表 始终在变,可能目前你的效果很有效,但是随着每个表的数据的变化,并不保证你的sql 始终都是高效的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
精通 Oracle SQL 是指熟练掌握使用 Oracle 数据库的 SQL 语言进行数据查询、操作和管理的能力。 在实际应用中,Oracle SQL 可以用于创建和管理数据库对象,如表、索引、触发器等。可以使用 SQL 查询语句进行数据的增删改查操作,将数据存储到表中、更新已有数据、删除不需要的数据。同时,还可以使用 SQL 语句查询和统计数据库中的数据,包括单表查询、多表连接查询、子查询、分组聚合查询等,满足复杂的数据分析需求。 精通 Oracle SQL 的案例可以涉及以下几个方面: 1. 数据库表的创建和管理:通过 SQL 语句创建表,并使用各种约束(如主键、外键、唯一性约束等)保证数据的完整性和一致性。可以设计复杂的表结构,根据业务需求合理划分表,并建立索引提升查询性能。 2. 数据的增删改查:使用 INSERT、UPDATE、DELETE 语句对数据进行插入、更新和删除操作,保持数据的准确性和实时性。通过 SELECT 语句进行数据查询,包括简单的查询和复杂的多表连接查询,使用各种条件和函数进行数据筛选和分组。 3. 数据库性能调优:根据 Oracle 的优化器原理,编写高效的 SQL 语句,使用适当的索引、合理的查询条件和表连接方式,提高数据库的查询性能。了解并使用 Explain Plan 和 SQL Trace 等工具进行 SQL 语句的性能分析和调优。 4. 触发器和存储过程:根据实际需求,编写触发器和存储过程,实现复杂的业务逻辑,保证数据的完整性和一致性。可以结合 PL/SQL 编程语言,编写包含逻辑判断、循环、异常处理等的存储过程,实现更高级的功能。 5. 数据库备份和恢复:了解 Oracle 的备份和恢复机制,使用备份工具进行数据的定期备份,可以使用 SQL*Loader 或 Data Pump 等工具导入导出数据,实现数据库的迁移和复制。 总结来说,掌握 Oracle SQL 可以实现对 Oracle 数据库的全面控制和操作,能够高效地进行数据管理和查询,提供数据分析和决策支持。通过不断学习和实践,不断完善和提升自己的 SQL 技能,可以成为一名优秀的 Oracle 数据库开发人员。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值