今天生肖开奖结果查询|今期生肖开红花打一肖
主頁 > 知識庫 > 數據庫 > Oracle >

關于Oracle數據庫優化的幾點總結

來源:中國IT實驗室 作者:佚名 發表于:2013-07-23 17:50  點擊:
個人理解,數據庫性能最關鍵的因素在于IO,因為操作內存是快速的,但是讀寫磁盤是速度很慢的,優化數據庫最關鍵的問題在于減少磁盤的IO,就個 人理解應該分為物理的和邏輯的優化, 物理的是指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)合理使用事務,合理設置事務隔離性,數據庫的數據操作比較消耗數據庫資源的,盡量使用批量處理,以降低事務操作次數

    有幫助
    (0)
    0%
    沒幫助
    (0)
    0%
  • 上一篇:基于Oracle的大數據導入方案探索
  • 下一篇:沒有了
  • 今天生肖开奖结果查询 pt电子吧 魔龙玩法 宝马线上娱乐mg线路检测 毛富挂机模式 上海快三开奖 贩卖羊赚钱么 pk10滚雪球定位计划 澳洲幸运五开奖软件下载 黑龙江彩票快乐10分 微信关注任务赚钱是真的吗