oracle数据性能库优化方案精髓整理收集回顾

oracle数据库性能优化总体法则:


一、减少数据访问(减少硬盘房访问次数)

二、返回更少的数据(减少网络传输或磁盘访问)

三、减少交互次数(减少网络传输)

四、减少服务器开销(减少cpu及内存开销)

五、利用更多的资源(增加资源)


===================具体说明=================

一、减少数据访问(减少硬盘房访问次数)

1、减少数据访问

1.1.创建并使用正确的索引

索引会大大增加DML(增删改)的开销【合理的索引会大大提高效率100倍、1000倍,但不合理的索引甚至会降低性能100倍】

一个表中可以有多个索引,一个索引也可以由多个字段组成


会使用索引的情况:

index_column>?

index_column<?

index_column=?

index_column>=?

index_column<=?

index_columnbetween ? and ?

index_columnin (?,?...?)

index_columnlike ?||%‘(后导模糊查询)

t1.index_column= t2.culunm2(两表通过索引字段关联)


不会使用索引的情况:

index_column<>?

index_columnnot in (?,?...?)

--------------不等于不会使用索引

function(index_column)=?

index_column+1=?

index_column||‘aaa‘=?

--------------经过普通运算或者函数运算的字段不会使用索引

index_columnis null

----------------索引不保存null值所以is null不会使用索引

index_column=‘12345’

index_column=12345

--------------oracle在进行数值比较时候会将左右两边转换成相同类型,相当于使用了函数。不会使用索引

a.index_column= a.column_!

--------给索引查询的值应该是已知的,未知的是不会使用索引的

常见的索引注意事项:

需要加索引的:

1、主键

2、外键

3、有对象或身份标识意义的字段


慎用索引的:

1、日期

2、年月

3、状态标识

4、区域

5、操作人员

6、数值

7、长字符


不适合用索引的

1、描述备注字段

2、大字段


另外:

经常在一起使用的几个查询字段可以建立组合索引

如:select id,name from company where type=‘2‘;

如果经常使用这个可以在id,name,type上建立组合索引;

切记:性能优化无止境。当达到要求后就要适可而止,切勿物极必反


二、更少的返回数据


1、数据分页处理(客户端分页、服务器分页、数据库分页)

2、只返回需要的字段



三、减少交互次数(batch提交,增大fech_size、使用存储过程)


未完待续-------共同学习进步

oracle数据性能库优化方案精髓整理收集回顾,布布扣,bubuko.com

oracle数据性能库优化方案精髓整理收集回顾

上一篇:丢失所有控制文件,noresetlogs重建控制文件,alter database open


下一篇:SQL2008触发器