第一篇 優化工具篇
第 1 章 dba 優化之路
1.1 學習的建議
1.2 工具推薦
1.3 關於操作係統方麵的建議
1.4 關於oracle初始化參數的調整
1.5 關於statspack的若乾建議
1.6 關於logmnr在調優中的運用
1.7 關於materialized view在調優中的運用
.1.8 關於stored outline在sql優化中的運用
1.9 用dbms_profiler調優存儲過程 8
1.10 優化前的準備工作
1.11 如何對sql進行調整及優化
1.12 錶結構優化實例
1.13 如何對session進行跟蹤
1.14 基於等待事件的性能診斷方法
1.15 基於資源限製的性能診斷方法
1.16 如何減少共享池的碎片
1.17 監控錶及索引的意義
1.18 通過優化sql消除temp錶空間膨脹
1.19 理解compress選項在優化上的作用 19
1.20 關於在綫重定義table的建議
1.21 關於分區錶在數據庫設計時的建議
1.22 關於dataguard在高可用方麵的建議 20
第 2 章 statspack 高級調整 23
2.1 statspack高級調整譯文
2.1.1 top 5 wait events
2.1.2 等待時間快捷參考
2.2 關於latch
第 3 章 statspack 使用的幾個誤區
3.1 以命中率為主衡量性能問題
3.2 快照的采樣時間間隔問題
3.3 以偏概全
3.4 關於timed_statistics參數的設定
3.5 你成瞭泄密者
第 4 章 tkprof 工具使用簡介
4.1 tkprof工具簡介
4.2 tkprof工具的使用步驟
4.3 tkprof工具如何分析trace文件 41
第 5 章 使用 oracle 的等待事件檢測性能瓶頸
5.1 判斷等待事件的相關視圖
5.1.1 係統級統計信息v$system_event
5.1.2 會話級統計信息v$session_event
5.1.3 會話詳細性能信息 v$session_wait
5.1.4 會話等待事件的相關視圖之間的關係
5.2 應該怎麼考慮進行優化
5.3 主要等待事件
5.4 案例分析
5.5 小結
5.6 附錄
第 6 章 使用 sql_trace/10046 事件進行數據庫診斷
6.1 sql_trace及10046事件的基礎介紹
6.1.1 sql_trace說明
6.1.2 10046事件說明
6.1.3 獲取跟蹤文件
6.1.4 讀取當前session設置的參數
6.2 案例分析之一
6.2.1 問題描述
6.2.2 檢查並跟蹤數據庫進程
6.2.3 檢查trace文件
6.2.4 登錄數據庫檢查相應錶結構
6.2.5 解決方法
6.2.6 小結
6.3 案例分析之二
6.3.1 問題描述
6.3.2 drop user齣現問題
6.3.3 跟蹤問題
6.3.4 問題定位
6.3.5 實際處理
6.3.6 小結
6.4 10046與等待事件
6.4.1 10046事件的使用
6.4.2 10046 與db_file_multiblock_read_count
6.4.3 10046與執行計劃的選擇
6.4.4 db_file_multiblock_read_count與係統的io能力
6.4.5 小結
第二篇 存儲優化篇
第 7 章 錶空間的存儲管理與優化技術
7.1 錶空間的作用與分類
7.2 字典管理錶空間
7.2.1 字典管理錶空間的特性
7.2.2 字典管理錶空間的缺點
7.2.3 字典管理錶空間的優化
7.3 本地管理錶空間
7.3.1 本地管理錶空間的特性
7.3.2 管理位圖塊的內部結構
7.3.3 本地管理錶空間的優點
7.4 段自動管理錶空間
7.4.1 段自動管理錶空間的特性
7.4.2 位圖管理段內部結構
7.4.3 段自動管理錶空間的優化
7.5 9i對錶空間的管理優化
7.5.1 自動undo管理的錶空間
7.5.2 完全本地的臨時錶空間
7.6 oracle 10g對錶空間的優化
7.7 小結
7.8 附錄
第 8 章 關於 oracle 數據庫中行遷移 / 行鏈接的問題
8.1 行遷移/行鏈接的簡介
8.2 行遷移/行鏈接的檢測方法
8.3 行遷移/行鏈接的清除方法
第 9 章 hwm 與數據庫性能的探討
9.1 什麼是hwm
9.2 初始創建的table中hwm的不同情況 122
9.3 insert數據時hwm的移動
9.4 hwm對性能的影響
9.5 何時應該降低hwm
9.5.1 對於lmt下的flm
9.5.2 對於assm
9.6 如何降低hwm
9.6.1 move
9.6.2 dbms_redefinition
9.6.3 shrink
9.6.4 小結
9.7 其他幾種會移動hwm的操作
9.7.1 insert append
9.7.2 truncate
第 10 章 調整 i/o 相關的等待
10.1 oracle數據庫i/o相關競爭等待簡介 153
10.2 oracle數據庫i/o相關競爭等待的處理方法
10.3 oracle數據庫i/o相關的等待事件和相應的解決方法
10.3.1 數據文件相關的i/o等待事件
10.3.2 控製文件相關i/o等待事件
10.3.3 重做日誌文件相關的等待事件
10.3.4 高速緩存區相關的i/o等待事件
10.4 小結
第 11 章 oracle 在 solaris 的 vxfs 上的異步 i/o 問題
11.1 vxfs文件係統的簡介
11.2 vxfs文件係統上如何啓用異步i/o
11.3 如何檢測在vxfs文件係統上是否支持異步i/o
11.4 如何查看vxfs文件係統上異步i/o的性能 173
11.5 如何轉換vxfs文件係統上數據文件為支持異步i/o的
數據文件
第 12 章 關於 freelists 和 freelist groups 的研究
12.1 什麼是freelists
12.2 freelists是否已經過時
12.3 freelists存儲在哪裏
12.4 有多少種free list
12.5 進程請求空閑塊的過程
12.6 塊在free list間的移動
12.7 關於free list將導緻大量空間浪費的誤解
12.8 對於freelists和freelist groups的一個比喻
12.9 與freelists和freelist groups相關的等待事件
第三篇 內存調整篇
第 13 章 自動 pga 管理──原理及優化
13.1 什麼是pga內存自動管理
13.2 pga advice功能
13.3 自動pga內存管理相關初始化參數
第 14 章 32bit oracle sga 擴展原理和 sga 與 pga 的製約
關係
14.1 如何識彆32bit的oracle
14.2 為何存在1.7gb的限製
14.3 32bit下sga與pga之間的製約關係 207
第 15 章 keep 池和 recycle 池
15.1 oracle的數據緩衝池
15.2 keep池和recycle池
15.2.1 keep池
15.2.2 recycle池
15.3 小結
第 16 章 深度分析數據庫的熱點塊問題
16.1 熱點塊的定義
16.2 數據緩衝區的結構
16.3 如何確定熱點對象
16.4 熱點問題的解決
16.5 熱點塊的其他相關癥狀
16.6 小結
第 17 章 shared pool 原理及性能分析
17.1 shared pool的基本原理
17.2 shared pool的設置說明
17.2.1 基本知識
17.2.2 shared pool的free list管理
17.2.3 瞭解x$ksmsp視圖
17.3 診斷和解決ora-04031錯誤
17.3.1 什麼是ora-04031錯誤
17.3.2 內存泄露
17.3.3 綁定變量和cursor_sharing
17.3.4 使用flush shared pool緩解共享池問題
17.3.5 shared_pool_reserved_size參數的設置及作用
17.3.6 其他
17.3.7 模擬ora-04031錯誤
17.4 library cache pin及library cache lock分析
17.4.1 library cache pin等待事件
17.4.2 library cache lock等待事件
17.5 診斷案例一
17.6 診斷案例二
17.7 小結
第四篇 診斷案例篇
第 18 章 一次性能調整過程總結
18.1 係統環境
18.2 基本的調優過程
18.2.1 db file scattered read
18.2.2 db file sequential read
18.2.3 enqueue
18.2.4 latch free
18.3 小結
第 19 章 電信業 oracle 優化手記
19.1 一條sql語句要運行2年怎麼辦
19.2 優化的傳統定律和新時尚
19.2.1 index和錶同一個錶空間(過時)
19.2.2 定期重建索引(過時)
19.2.3 裸設備應該取代文件係統(過時)
19.2.4 初始參數設置cursor_sharing = similar(不一定
有效)
19.2.5 初始參數設置fast = true(有效) 289
19.3 聯機重做日誌的優化
19.3.1 聯機重做日誌組內創建多個成員
19.3.2 加大redo log的容量
第 20 章 一次診斷和解決 cpu 利用率高的問題分析
20.1 問題的具體描述
20.2 問題的詳細診斷解決過程
20.3 小結
第 21 章 一次異常內存消耗問題的診斷及解決
21.1 問題發現
21.2 解決過程
21.2.1 環境介紹
21.2.2 問題現象
21.2.3 對比分析
21.2.4 假設和分析
21.2.5 找到根源
21.2.6 解決問題
21.3 小結
第 22 章 如何捕獲問題 sql 解決過度 cpu 消耗問題
22.1 檢查當前情況
22.2 使用top工具輔助診斷
22.3 檢查進程數量
22.4 登錄數據庫
22.5 捕獲相關sql
22.6 創建新的索引以消除全錶掃描
22.7 觀察係統狀況
22.8 性能何以提高
22.9 小結
第 23 章 一條 sql 導緻數據庫整體性能下降的診斷及解決
23.1 現象
23.2 診斷與解決
第 24 章 library cache lock 成因和解決方法的探討
24.1 幾個相關的概念
24.1.1 什麼是庫高速緩存(library cache)
24.1.2 一個sql語句的處理流程
24.1.3 硬分析(hard parse)
24.1.4 軟分析(soft parse)
24.1.5 分析樹
24.1.6 執行計劃
24.2 瞭解library cache lock 329
24.2.1 幾種容易引起library cache lock的情況
24.2.2 幾種防患的方法
24.3 解決問題的方法
24.3.1 使用x$kgllk和systemstate事件解決問題
24.3.2 使用v$session和systemstate事件解決問題
24.4 小結
第五篇 sql優化及其他
第 25 章 oracle 數據庫優化之索引( index )簡介
25.1 索引的作用
25.2 索引管理的常見問題
25.3 索引的管理
25.4 一些索引管理的腳本
第 26 章 cbo 成本計算初探
26.1 建立測試數據
26.2 cbo計算成本原理初探
26.3 初始化參數以及優化器模式對執行計劃的影響 371
26.3.1 初始化參數db_file_multiblock_read_count
26.3.2 初始化參數optimizer_index_cost_adj
26.3.3 優化器模式first_rows對執行計劃的影響
26.4 小結
第 27 章 bitmap 索引
27.1 bitmap索引的概念
27.2 建立測試例子
27.3 bitmap索引的特點
27.3.1 bitmap索引比b樹索引要節省空間
27.3.2 bitmap索引建立的速度比較快
27.3.3 基於規則的優化器無法使用bitmap索引 382
27.3.4 bitmap索引存儲null值
27.3.5 通過bitmap索引訪問錶記錄
27.3.6 bitmap索引對批量dml操作隻需要索引一次
27.3.7 bitmap索引的鎖機製
27.4 bitmap索引的適用範圍
27.5 bitmap索引的使用限製
27.6 bitmap join索引簡介
第 28 章 翻頁 sql 優化實例
28.1 係統環境
28.2 優化效果
第 29 章 使用物化視圖進行翻頁性能調整
29.1 係統環境
29.2 問題描述
29.3 捕獲排序sql語句
29.4 確定典型問題sql
29.5 選擇解決辦法
29.6 進一步的調整優化
29.7 小結
第 30 章 如何給 large delete 操作提速近韆倍
30.1 背景描述
30.1.1 任務描述
30.1.2 數量級統計和描述
30.2 背景知識——bulk binding
30.2.1 什麼是bulk binding
30.2.2 bulk binding的優點是什麼
30.2.3 如何進行批量綁定(bulk binds) 415
30.3 優化過程詳解
30.3.1 第一次優化——處理龐大的in-list操作 420
30.3.2 第二次優化 —— 分段操作
30.3.3 第三次優化 —— 拆分 delete操作
30.3.4 第四次優化——使用forall處理批量作業 424
30.3.5 第五次優化——使用forall + 原子級操作
30.4 小結
第 31 章 web 分頁與優化技術 431
31.1 什麼是web分頁
31.2 錶數據普通查詢分頁
31.3 first_rows對分頁的影響
31.4 帶排序需求的分頁
31.5 分頁的速度優化
31.6 分頁中的注意事項
31.6.1 真實案例──錶中存在union all的視圖時,可能
選擇錯誤的執行計劃
31.6.2 真實案例──rowid分頁中,執行計劃的錯誤選
擇與處理
31.6.3 真實案例──使用rownum得到意想不到的結果
31.7 小結
第 32 章 oracle 數據封鎖機製研究 457
32.1 數據庫鎖的基本概念
32.2 oracle多粒度封鎖機製介紹
32.2.1 oracle的tx鎖(事務鎖、行級鎖)
32.2.2 tm鎖(錶級鎖)
32.3 oracle 多粒度封鎖機製的監控
32.3.1 係統視圖介紹
32.3.2 監控腳本
32.4 oracle 多粒度封鎖機製示例
32.4.1 操作同一行數據引發的鎖阻塞
32.4.2 實體完整性引發的鎖阻塞
32.4.3 參照完整性引發的鎖阻塞
32.4.4 外鍵未加索引引發的鎖阻塞
32.4.5 部分迴滾對鎖的影響
32.4.6 鎖的排隊機製
32.4.7 itl slot不足引發的鎖阻塞
32.4.8 bitmap索引引發的鎖阻塞
32.4.9 死鎖分析
32.4.10 錶級鎖的使能
32.4.11 row_locking參數
32.5 oracle 多粒度封鎖機製總結
· · · · · · (
收起)