多年系統優化的總結

    1、調整數據結構的設計,要考慮如下:web

       1. 任何表的設計都要考慮到數據的刪除策略,表中的數據不能無止境的增加而不刪除。
       2. 根據實際使用分區表(要用本地索引);
       3. 根據須要創建主鍵、索引,日誌表通常能夠不建主鍵,索引建在使用率高的字段上;
       4. 不一樣的業務日誌要記錄到不一樣的日誌表中,日誌表最好分爲當前表(僅放當前記錄數據)和歷史表(當前表的轉移數據,能夠建分區,便於清理);
       5. 不一樣的業務表放到不一樣的表空間。
       6. 表和索引要放到不一樣的表空間。
       7. 嚴禁在系統表空間建用戶對象。
       8. 對於大系統最好分域,一個子系統對應一個域(一個域至關於一個數據庫)。
       9. 公共對象最好單獨建域,供全部子系統訪問。
       10. 對於海量數據且有大量報表查詢的系統,應建離線數據庫,經過專門數據傳輸工具把線網數據導到離線庫,供報表、BI專用。
       11. 大量的頻繁的數據導入導出應使用專門的數據處理工具進行處理。
      
   2、調整應用程序結構設計,要考慮如下:  sql

       1. 肯定使用 Client/Server兩層體系結構,仍是使用Browser/Web/Database的三層體系結構;
       2. 無論用那種結構,應用服務器都不要直接連數據庫(應用服務最好使用中間件連數據庫);
       3. web服務器的參數根據實際狀況進行設置。
       4. 動態資源和靜態資源服務最好分開部署。
       5. 前臺服務和後臺服務最好分開部署。
       6. 同一服務部署在大量機器上時最好使用負載均衡技術(如F5).
       7. 各服務器要使用主備切換、負載均衡技術,要有自動拉起工具。
      
    3、調整數據庫SQL語句:數據庫

       1. 最好使用存儲過程、函數等數據庫對象(觸發器少用),效率高,維護方便。
       2. 根據狀況選擇合適ORACLE語句優化器、行鎖管理器,9i之後使用基於成本的優化器,要常常進行表分析。
       3. 其它方面的sql調優這裏不作說明。
       4. 按期清理表數據。
       5. 頻繁進行刪除的建有索引的表,應按期重建索引,在許可的條件下,也能夠階段性地truncate表(同時也刪除索引碎片).
   
    4、ORACLE初始化參數設置,根據各自的系統來設置,沒什麼標準,注意下面幾點:編程

       1. 歸檔日誌的空間要足夠大,歸檔日誌要定時轉移或刪除。
       2. 回滾表空間根據須要設置爲自動管理,若是用回滾段設爲手動管理。      
       3. 要爲處理臨時的大量數據創建專用的表空間,不要使用其它業務的表空間。
       4. 至少建三個日誌文件組,每一個組中至少兩個日誌文件,文件不要放到同一個地方。
       5. 使用8i OPS或9i RAC時,要作業務應用分割,服務器採用DEDICATED SERVER方式(獨佔方式),關掉RAC的remote_listener(遠程註冊)。
       6. oracle各客戶端必須關掉listener的負載均衡。
    5、調整硬盤I/O,不一樣類型的數據文件放在不一樣的存儲上:安全

       1. 將表數據文件、索引文件、日誌文件分開存放;
       2. 將用戶表空間,與系統表空間分開存放;
       3. 建立表和索引時指定不一樣的表空間;
       4. 建立回滾段專用的表空間,防止空間競爭影響事務的完成;
       5. 建立臨時表空間用於排序操做,防止數據碎片存在於多個表空間中。
      
    6、調整小型機和AIX的參數,根據實際狀況進行調整,不作說明。
    7、網絡方面,很差控制,不作說明。
    8、其它方面,如版本升級(ORACLE、應用程序版本等)、防止人爲故障、編程規範等;出於安全方面,應創建應急數據庫(有條件的能夠創建完整的應急系統,並作按期應急演練),應急庫要和線網庫保持同步更新(業務日誌表不用更新)。服務器

     若有雷同,望諒解!網絡

相關文章
相關標籤/搜索