2010-2-4 ORA培训笔记摘要

来源:互联网 发布:java服务器配置 编辑:程序博客网 时间:2024/05/11 18:42

1, 绑定变量

2, SQL内存共享

3, 注意回滚空间,适当分批commit

4, 减少SQL执行频率,例如字典数据放入内存区缓存

5, 注意JOB进程的扫表频率,如果最后一次扫表,表数据已经非常少了,线程注意优化,让线程休眠几秒。减少对表达访问

6, 减少对表达访问,注意子查询在update中的使用,原则上就是一条:精简的SQL。

7, 回滚的另一个注意,truncate,delete。如果不需要回滚,建议用truncate。

8, In,exists:in用在枚举数据少时候快,而exists用在查询表数据大时候快。Not in,not exists会全表扫描。

9, Is null,is not null都会全表扫描

10, Where条件中,索引屏蔽情况要避免

11, 注意数据类型的隐性转换,特别是索引列上隐性转换导致索引失效。

12, 强制执行计划,HINTS使用

13, Rowid的巧妙使用。自表查询

14, 索引列尽量不要用函数;非用不可,建立函数索引。

15, 注意减少必要的排序,union会引起排序。Union all则不会。

16, 注意or的个数,太多or会导致执行计划选择错乱

17, 绑定参数的界定。注意根据业务情况来界定。

18, 注意组合索引首列顺序。唯一程度高的放在首列

19, Like 语句使用的问题。双%如何优化。Xxx%是可以用索引。%xx则不能。

20, DML及时提交,避免锁表太久。多进程同时进行时候,提交数据避免交叉集合的行锁,导致最后死锁。

21, 定时更新统计信息。特别重建索引,要更新。

22, Dual表语句消耗cpu。

23, 索引的建立原则。

24, 大表要分区

25, 函数和存储过程。维护困难,减少使用。

26, 触发器要少用。

27, 组合索引(列A<=X,列B>=Y。会屏蔽索引)

28, SQL业务逻辑优化

29, 小表扫描建议使用

30, 减少高并行,高频率的SQL

31, 碎片即使合并。(DELETE语句太多,引起ORACLE空间碎片)

原创粉丝点击