目前許多的應用中我們多用到了oracle數據庫,作爲一名程序員,我們不需要太精通數據庫的優化,但是基本的技能我們還是要掌握的,下面我們就oracle的性能優化做出一個總結:
1.優化表的結構
正常情況下我們設計出的表要滿足3NF的要求,否則表中會有大量的冗餘數據,這對我們以後的增刪改非常的不利,加大了數據量,同時過分的追求3NF的設計原則,加大了我們查詢過程中連接量,是造成系統性能低下的主要原因,因此我們需在實際應用做出決策,對於增刪改多的表設計時要滿足3範式的要求,而對於查詢要求多的表可以允許存在一定數據冗餘,提高查詢性能
2.優化sql文
查詢是我們系統開發室用到比較多的一個操作,因此sql文的好壞直接影響系統的性能。
對於oracle的sql文的優化,我們可以通過下列的方式獲取性能低下的是sql文:
我們可以通過查詢sql_area表來確定性能低下的sql文,結合sql執行計劃表對sql文進行優化
通常我們的sql文需要滿足下列的條件:
1. 連接查詢的時候,我們隊表的順序要有規定,通常以記錄表少的爲主表,或者中間表爲主表
2. 對於查詢的字段,我們要在適當的字段建立適當的索引
3.查詢的語句儘量大寫
4.不要在查詢的字段上進行計算
5.用>=代替>
6.用exists代替in
7.分組查詢的時候儘量在where語句後面對記錄進行過濾
8.全表刪除是用truncat代替delete
9.不要用*進行查詢
10.少用消耗資源的查詢操作:having,union
11.限定查詢返回的記錄數
3.對數據庫中經常用到的數據進行緩存,比如80%的時間在使用20%的數據,此時我們就應該使用查詢
4.對數據庫進行讀寫分離或者集羣,例如mysql的主從複製,oracle的RAC
5.對數據庫進行分區或者分表
6.利用大數據處理數據庫如Memcache,monogodb等等
總之,實際中的應用我們要具體情況具體分析,找出適合的解決方案