1. 主頁 > 知識庫 > 數據庫 > 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的大數據導入方案探索
        • 下一篇:沒有了
        • 2018宝宝说数特来算 蒙山县| 邓州市| 镇雄县| 乡宁县| 浦东新区| 腾冲县| 迁西县| 河源市| 阿鲁科尔沁旗| 科技| 盖州市| 密云县| 炎陵县| 洞头县| 繁昌县| 闽清县| 瓦房店市| 霍山县| 德庆县| 英超| 临潭县| 抚顺县| 周宁县| 广昌县| 德钦县| 砚山县| 灵川县| 乌拉特后旗| 巴林右旗| 贺兰县| 海林市| 聂拉木县| 温宿县| 徐水县| 灌云县| 宁明县| 恩平市| 西林县| 邯郸县| 衡阳市| 鲜城| http://cp.v79xub.top http://qq.c0kmy8.top http://china.sinasx3z.pw http://m5.p173ah.top http://58Lvkang.com.cn http://www.sinat6g.pw