Oracle12c 性能優化攻略:攻略目錄表


注:本文來源於 【美】 Sam Alapati ,   Darl Kuhn ,  Bill Padfield  著   朱浩波 翻譯 《Oracle Database 12C 性能優化攻略》一書。

                                                                                                                                                                                            ------整理者:劉軍

 源碼下載:oracle-db-12c-perf-tuning-recipes-master.zip 

一:優化表性能

 

1:創建具有優化性能的數據庫

 

2:創建具有最優性能的表空間安

 

3:匹配表類型與業務需求

 

4:選擇有益於性能的表特性

 

5:恰當選擇數據類型

 

6:在創建數據表時避免盤區分配延遲

 

7:數據加載速度最大化

 

8:高效移除表中的數據

 

9:顯示自動顧問建議

 

10:手工生成段顧問建議

 

11:自動發送段顧問輸出點電子郵件

 

12:重建跨多個數據塊的數據行

 

 

13:檢測行鏈接和行遷移

 

14:區分行遷移和行鏈接

 

15:積極預防行遷移/行鏈接的產生

 

16:檢測表中未使用的空間

 

17:追蹤檢測到位於高水位線下的空間

 

18:使用DBWS_SPACE來檢測於高水位線之下的空間

 

19:釋放未使用的表存儲空間

 

20:壓縮數據以進行直接路徑加載

 

21:為所有的DML操作壓縮數據

 

22:在列級壓縮數據

 

 

 

 

 

 

二:選擇和優化索引

 

1:理解B樹索引

 

2:選擇需要建立索引的列

 

3:創建主鍵約束和索引

 

4:確保唯一列值

 

5:為 外鍵列創建索引

 

7:決定何時使用組合索引

 

8:實現基於函數的索引

 

9:在虛擬列上創建索引

 

10:在多個進程並行插入時限制索引爭奪

 

11:觸發索引對優化器的可見性

 

12:創建支持星型架構額位圖索引

 

13:創建位圖連接索引

 

14:創建索引組織表

 

15:監控索引使用

 

16:索引創建速度最大化

 

17:回收未使用的索引空間

 

 

三:優化實例內存

 

1:自動內存管理

 

2:關聯多個緩沖池

 

3:設定內存最小值

 

4:監控內存調整操作

 

5:優化內存使用

 

6:調優PGA內存分配

 

7:配置服務器查詢緩存

 

8:管理服務器結果緩存

 

9:緩存SQL查詢結果

 

10:緩存客戶端結果集

 

11:緩存PL/SQL函數結果

 

12:配置Oracle數據庫智能閃存緩存

 

13:調節重做日志緩沖區

 

14:限制PGA內存分配

 

 

四:監控系統性能

 

1: 實現AWR

 

2:修改統計信息時間間隔和保存期限

 

3:手工生成AWR報表

 

4:通過企業管理器生成一份AWR報告

 

5:為一條SQL生成AWR基線

 

6:為數據庫創建統計基線

 

7:通過企業管理器關聯AWR基線

 

8:管理AWR統計信息庫

 

9:自動創建AWR基線

 

10:快速分析AWR輸出

 

11:手工獲取活動會話信息

 

12:從企業管理器中獲取ASH信息

 

13:從數據字典中獲取ASH信息

 

 

 

五:最小化系統資源爭奪

1:理解響應時間

 

2:確定引起最多等待的SQL語句

 

3:分析等待事件

 

4:理解等待事件的分類

 

5:檢查會話等待

 

6:按類型檢查等待事件

 

7:解決緩沖區忙等待

 

8:解決日志文件同步等待

 

 

9:被另一個會話讀取等待事件的最小化

 

10:減少直接路徑讀取等待事件

 

11:恢復寫入器等待最小化

 

12:找出誰持有阻塞鎖

 

13:確定被阻塞和引起阻塞的會話

 

14:處理引起的阻塞的鎖

 

15:確定被鎖定的對象

 

16:解決enq:TM鎖資源爭奪

 

17:確定最近被鎖住的會話

 

18:分析數據庫中最近的等待事件

 

19:確定由於鎖定所花費等待時間

 

20:鎖存器爭奪的最小化

 

 

六:分析操作系統性能

 

1:檢測磁盤空間問題

 

2:確定系統瓶頸

 

3:確定消耗服務器資源最多的進程

 

4:檢測CPU瓶頸

 

5:確定CPU和內存瓶頸

 

6:確定I/O瓶頸

 

7:檢測網絡密集型進程

 

8:將一個資源密集型進程映射到一個數據庫進程

 

9:終止一個資源密集型進程

 

 

 

 

七:檢修數據庫

 

1:確定最優的撤銷保留時間

 

2:找出是什么消耗最多的撤銷空間

 

3:解決ORA_01555錯誤

 

4:監控臨時表空間使用率

 

5:確定是誰在使用臨時表空間

 

6:解決”無法擴展臨時數據段”錯誤

 

7:解決打開游標錯誤

 

8:解決被掛起的數據庫問題

 

9:激活自動診斷庫命令解釋器

 

10:從ADRCI中查看報警日志

 

11:使用ADRCI查看事件

 

12:將事件打包發給Oracle技術指出團隊

 

 

13:運行一次數據庫健康檢查

 

14:創建SQL測試用例

 

15:生成一份AWR報告

 

16:比較兩階段的數據庫性能

 

17:分析一份AWR報告

 

 

 

 

八:創建高效的SQL

 

 

1:獲取一張表中的所有數據行

 

2:獲取一張表中的部分數據行

 

3:通過想到對應的行來連接表

 

4:在沒有相對應數據行的情況下連接表

 

5:構造簡單的子查詢

 

6:構建相關子查詢

 

7:比較2個表找出缺失的數據行

 

8:關聯2個表找出匹配的數據行

 

9:將相似SELECT 語句結果集合並

 

10:查找一定范圍內的值

 

11:處理空值

 

12:搜索部分列值

 

13:重用共享池中的SQL語句

 

14:避免偶然的全表掃描

 

15:創建高效的臨時表

 

16:避免使用NOT 子句

 

17:控制事務大小

 

 

 

 

九:SQL手工調優

 

1:顯示查詢的執行計划

 

2:定制執行計划輸出

 

3:圖形化顯示執行計划

 

4:解讀一份執行計划

 

5:監控運行時較長的SQL語句

 

6:確定當前正在執行的好占資源的SQL語句

 

7:查看當前正在運行的SQL語句的統計信息

 

8:監控一個SQL執行計划的處理過程

 

9:確定過去執行的SQL語句中最耗占資源的語句

 

10:比較系統修改后的SQL 性能

 

十:追蹤SQL執行

 

1: 環境准備

 

     2:在追蹤一個特定的SQL語句

    

3:在你所擁有的會話中啟用追蹤

 

4:找到追蹤文件

 

5:檢查原始SQL追蹤文件

 

6:分析Oracle追蹤文件

 

7:使用TKPROF 設置追蹤文件的格式

 

8:使用TKPROF輸出

 

9:使用Oracle追蹤分析器分析追蹤文件

 

10:追蹤一個並行查詢

 

11:追蹤特定的並行查詢進程

 

12:在RAC系統中追蹤並行查詢

 

13:合並多個追蹤文件

 

14:找出正確的回話來進行追蹤

 

15:追蹤一個SQL會話

 

16:通過進程ID來追蹤會話

 

17:追蹤多個會話

 

18:追蹤一個實例或數據庫

 

19:為會話生成事件10046追蹤

 

20:為實例生成10046追蹤

 

21:在一個正在運行的會話上設置追蹤

 

22:登錄之后啟用會話追蹤

 

23:追蹤優化的執行路徑

 

24:生成Oracle錯誤自動追蹤

 

 

    25:追蹤后台進程

 

26:啟用Oracle 監聽器追蹤

 

27:為數據衛士設置歸檔追蹤

 

 

 

 

十一:SQL自動調優

1.   顯示自動SQL調優工作詳細信息

 

 

2.顯示sql自動調優建議

 

 

3.生成SQL腳本實現自動調優建議

 

 

4.修改SQL自動調優特性

 

 

5.禁用和啟用SQL自動調優

 

 

6.修改維護窗口

 

7.創建SQL調優集對象

 

 

8.查看AWR中資源秘籍集型SQL語句

 

 

9.用AWR中高資源消耗的SQL來填充優化集

 

 

10.查看內存中資源密集型SQL語句

 

 

11.用內存中高資源消耗SQL來填充調優集

 

 

12.將內存中所有的SQL來填充調優集

 

 

13.顯示SQL調優集的內容

 

 

14.有選擇地從SQL調優集中刪除語句

 

 

15.傳輸SQL調優集

 

 

16.創建調優任務

 

 

17.手工運行SQL調優顧問

 

 

18.從數據庫自動診斷監視器中獲取SQL調優建議

 

 

 

 

十二:執行計划優化與一致性


     

   1:創建並接受SQL概要文件

 

    2:確認某個查詢是否使用了SQL概要文件

  

  3:自動接受SQL概要文件

  

  4:顯示SQL概要文件

 

   5:選擇性測試SQL概要文件

 

   6:將SQL概要文件遷移到另外一個數據庫中

 

     7:禁用SQL概要文件

  

  8:刪除SQL概要文件

   

9:為內存中的一條SQL語句創建計划基線

  

  10:為包含SQL調優集中的SQL語句創建計划基線

    

11:自動增加計划基線

  

  12:修改計划基線

 

   13:確認是否存在計划基線

 

    14:確認某個查詢是否使用了計划基線

 

    15:顯示計划基線執行計划

 

    16:手工在計划基線中加入一個新的計划(擴展)

 

   17:阻止自動接受新的低成本執行計划

  

  18:禁用計划基線

   

19:移除計划基線信息

  

  20:遷移計划基線

 

 

十三:優化配置


    

1:選擇器優化目標

   

2:啟用統計信息自動收集

  

3:為統計信息收集設置首選參數

  

4:手工生成統計信息

   

5:鎖定統計信息

  

6:處理統計信息的缺失

 

  7:導出統計信息

   

8:還原以前版本的統計信息

   

9:收集系統統計信息

 

  10:驗證新的統計信息

 

  11:強制優化使用某個索引

   

12:啟用查詢優化器特性

   

13:阻止數據庫創建柱形圖

   

14:不使用綁定定量提高性能

   

15:理解自適應游標共享

  

16:在表達式上創建統計信息

  

17:為相關列創建統計信息

 

  18:自動創建列組

  

19:維護分區表統計信息

   

20:為大表並行收集統計信息

  

21:確定統計信息何時過期

   

22:預覽統計信息收集對象

 

十四:實現查詢提示


  

1:編寫一個提示

 

2:改變訪問路徑

 

3:改變連接順序

  

4:改變連接方法

 

5:改變優化器版本

  

6:在快速響應和整體優化之間進行選擇

 

7:進行直接路徑插入

 

8:在視圖中加入提示

 

  9:緩存查詢結果

 

10:將分布式查詢引導到一個特定的數據庫

 

十五:並行執行SQL

 

  1:為特定查詢啟用並行

  

2:在創建對象時啟用並行

 

  3:為已經存在的對象啟用並行

 

4:實現並行DML

  

5:並行創建表

 

6:並行創建索引

  

7:並行重建索引

 

8:並行移動分區

 

9:並行拆分分區

 

10:啟用自動解釋計划

 

  11:檢查並行解釋計划

 

12:監控並行操作

  

13:找出並行進程中的瓶頸

  

14:獲取並行回話中詳細信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM