oracle數據庫性能優化總體法則:數據庫
1、下降數據訪問(下降硬盤房訪問次數)性能優化
2、返回更少的數據(下降網絡傳輸或磁盤訪問)網絡
3、下降交互次數(下降網絡傳輸)oracle
4、下降server開銷(下降cpu及內存開銷)函數
5、利用不少其它的資源(添加資源)post
===================詳細說明=================性能
1、下降數據訪問(下降硬盤房訪問次數)
學習
一、下降數據訪問優化
1.1.建立並使用正確的索引spa
索引會大大添加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_!
--------給索引查詢的值應該是已知的。未知的是不會使用索引的
常見的索引注意事項:
需要加索引的:
一、主鍵
二、外鍵
三、有對象或身份標識意義的字段
慎用索引的:
一、日期
二、年月
三、狀態標識
四、區域
五、操做人員
六、數值
七、長字符
不適合用索引的
一、描寫敘述備註字段
二、大字段
另外:
經常在一塊兒使用的幾個查詢字段可以創建組合索引
如:select id,name from company where type='2';
假設經常使用這個可以在id,name,type上創建組合索引;
切記:性能優化無止境。
當達到要求後就要適可而止,切勿物極必反
2、更少的返回數據
一、數據分頁處理(client分頁、server分頁、數據庫分頁)
二、僅僅返回需要的字段
3、下降交互次數(batch提交。增大fech_size、使用存儲過程)
未完待續-------共同窗習進步