#新炬學院分享#關於Oracle資料庫最佳化的幾點總結
資料庫效能最關鍵的因素在於IO,因為操作記憶體是快速的,但是讀寫磁碟是速度很慢的,最佳化資料庫最關鍵的問題在於減少磁碟的IO,就個人理解應該分為物理的和邏輯的最佳化, 物理的是指Oracle產品本身的一些最佳化,邏輯最佳化是指應用程式級別的最佳化。
物理最佳化的一些原則:
1)Oracle的執行環境(網路,硬體等);
2)使用合適的最佳化器;
3)合理配置oracle例項引數;
4)建立合適的索引(減少IO);
5)將索引資料和表資料分開在不同的表空間上(降低IO衝突);
6)建立表分割槽,將資料分別儲存在不同的分割槽上(以空間換取時間,減少IO)。
邏輯上最佳化:
1)可以對錶進行邏輯分割,如中國移動使用者表,可以根據手機尾數分成10個表,這樣對效能會有一定的作用;
2)Sql語句使用佔位符語句,並且開發時候必須按照規定編寫sql語句(如全部大寫,全部小寫等)oracle解析語句後會放置到共享池中,如:select * from Emp where name=?這個語句只會在共享池中有一條,而如果是字串的話,那就根據不同名字存在不同的語句,所以佔位符效率較好;
3)資料庫不僅僅是一個儲存資料的地方,同樣是一個程式設計的地方,一些耗時的操作,可以透過儲存過程等在使用者較少的情況下執行,從而錯開系統使用的高峰時間,提高資料庫效能;
4)儘量不使用*號,如select * from Emp,因為要轉化為具體的列名是要查資料字典, 比較耗時;
5)選擇有效的表名:對於多表連線查詢,可能oracle的最佳化器並不會最佳化到這個程度, oracle 中多表查詢是根據FROM字句從右到左的資料進行的,那麼最好右邊的表(也就是基礎表)選 擇資料較少的表,這樣排序更快速,如果有link表(多對多中間表),那麼將link表放最右邊作為基礎表,在預設情況下oracle會自動最佳化,但是如果配置了最佳化器的情況下,可能不會自動最佳化,所以平時最好能按照這個方式編寫sql;
6)Where字句規則:Oracle 中Where字句時從右往左處理的,表之間的連線寫在其他條件之前,能過濾掉非常多的資料的條件,放在where的末尾, 另外!=符號比較的列將不使用索引,列經過了計算(如變大寫等)不會使用索引(需要建立起函式), is null、is not null等最佳化器不會使用索引;
7)使用Exits Not Exits 替代 In Not in;
8)合理使用事務,合理設定事務隔離性,資料庫的資料操作比較消耗資料庫資源的,儘量使用批次處理,以降低事務操作次數。
成功一定有方法,失敗一定有原因,失敗的原因只有一個,那就是四個字:學習不夠!最新最全的新炬學院官網!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29960155/viewspace-1800970/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- #新炬學院分享# Oracle DBA的系統管理任務Oracle
- 關於Oracle資料庫與MySQL資料庫的幾點區別Oracle資料庫MySql
- 關於資料庫鎖的總結資料庫
- 關於ORACLE的一點總結Oracle
- 關於資料庫查詢業務的幾點思考資料庫
- 關於資料庫間連結問題彙總---Oracle資料庫Oracle
- 關於企業的備份幾點總結
- 關於Oracle 資料庫備份的幾個概念Oracle資料庫
- MySQL/Oracle資料庫最佳化總結(非常全面)MySqlOracle資料庫
- 關於如何快速調教NGINX的幾點總結Nginx
- 關於oracle閃回資料歸檔的總結Oracle
- oracle 學習總結篇三:SCN號與資料庫關閉的關係Oracle資料庫
- JS 總結之關於 this 應該知道的幾個點JS
- 關於10G DATAGUARD實施的幾點總結
- 關於Oracle Timezone的一點總結Oracle
- oracle 學習總結篇一: 資料庫的建立Oracle資料庫
- Oracle 資料庫12c新特性總結(一)Oracle資料庫
- oracle資料字典的一點總結!Oracle
- 【恩墨學院】基於裸資料的異地資料庫效能診斷與最佳化資料庫
- 關於oracle 11g acs的一點總結:Oracle
- oracle 學習總結篇三:SCN號與資料庫啟動的關係Oracle資料庫
- 關於修改資料庫名稱和ID的方法總結資料庫
- ORACLE關於NULL的總結OracleNull
- 關於ORACLE鎖的總結Oracle
- 關於Oracle baseline的幾點Oracle
- 分享幾點關於 web 前端開發的看法Web前端
- 【新炬網路名師大講堂】不同資料庫取前幾條記錄資料庫
- 中山大學新炬網路學院首開大資料技術選修課大資料
- 【新炬網路名師大講堂】Oracle Database 12c 新特性總結OracleDatabase
- Oracle幾種表的優缺點總結Oracle
- 關於統計資料收集的總結
- 關於資料庫安全的五點思考資料庫
- 總結幾個ORACLE資料庫日常運維常用的命令(持續更新)Oracle資料庫運維
- 關於oracle裡的process總結Oracle
- 關於oracle synonym 的總結整理Oracle
- 關於Oracle資料庫中行遷移/行連結的問題Oracle資料庫
- 關於BSS資料化轉型的幾點討論
- 關於 資料壞塊 的整理和總結