第一部分 基 礎
第1章 性能問題
1.1 需要為性能做規(guī)劃嗎
1.1.1 需求分析
1.1.2 分析和設計
1.1.3 編碼和單元測試
1.1.4 集成和驗收測試
1.2 什么是性能問題
1.2.1 系統(tǒng)監(jiān)控
1.2.2 響應時間監(jiān)控
1.2.3 強迫調優(yōu)失調癥
1.3 如何解決性能問題
1.3.1 業(yè)務角度與系統(tǒng)角度
1.3.2 把問題分類
1.3.3 解決問題
1.4 小結
第2章 關鍵概念
2.1 選擇性和基數
2.2 游標的生命周期
2.3 解析的過程
2.3.1 共享游標
2.3.2 綁定變量
2.4 讀寫數據塊
2.5 小結
第二部分 找出問題
第3章 找出性能問題
3.1 分而治之
3.2 分析路線圖
3.3 性能測量與剖析分析
3.4 性能測量
3.4.1 應用程序代碼
3.4.2 數據庫調用
3.5 剖析應用程序代碼
3.5.1 簡明的性能剖析
3.5.2 細節(jié)化性能剖析
3.6 跟蹤數據庫調用
3.6.1 SQL跟蹤
3.6.2 跟蹤文件的結構
3.6.3 使用TRCSESS
3.6.4 剖析工具
3.6.5 使用TKPROF
3.6.6 使用TVD$XTAT
3.7 剖析PL/SQL代碼
3.7.1 安裝剖析工具
3.7.2 安裝輸出表
3.7.3 收集剖析數據
3.7.4 報告剖析數據
3.7.5 GUI方式
3.8 小結
第三部分 查詢優(yōu)化器
第4章 系統(tǒng)和對象統(tǒng)計信息
4.1 工具包dbms_stats簡介
4.2 系統(tǒng)統(tǒng)計
4.2.1 數據字典
4.2.2 非工作量統(tǒng)計信息
4.2.3 工作量統(tǒng)計信息
4.2.4 對查詢優(yōu)化器的影響
4.3 對象統(tǒng)計信息
4.3.1 有哪些對象統(tǒng)計信息可用
4.3.2 收集對象統(tǒng)計信息
4.3.3 鎖定對象統(tǒng)計信息
4.3.4 比較對象統(tǒng)計信息
4.3.5 刪除對象統(tǒng)計信息
4.3.6 保持統(tǒng)計信息時效性的策略
4.4 通用服務
4.4.1 統(tǒng)計信息歷史
4.4.2 創(chuàng)建和刪除備份表
4.4.3 導出、導入、獲取和設置操作
4.4.4 日志
4.5 小結
第5章 配置查詢優(yōu)化器
5.1 配置還是不配置
5.2 配置路線圖
5.3 設置正確的參數
5.3.1 查詢優(yōu)化器參數
5.3.2 PGA管理
5.4 小結
第6章 執(zhí)行計劃
6.1 獲取執(zhí)行計劃
6.1.1 SQL語句EXPLAIN PLAN
6.1.2 動態(tài)性能視圖
6.1.3 AWR和Statspack
6.1.4 跟蹤功能
6.1.5 dbms_xplan包
6.2 解釋執(zhí)行計劃
6.2.1 父子關系
6.2.2 操作類型
6.2.3 單獨型操作
6.2.4 非相關聯合型操作
6.2.5 相關聯合型操作
6.2.6 分而治之
6.2.7 特殊的例子
6.3 識別低效的執(zhí)行計劃
6.3.1 錯誤的評估
6.3.2 未識別約束
6.4 小結
第7章 SQL優(yōu)化技術
7.1 改變訪問結構
7.1.1 運行機制
7.1.2 何時使用
7.1.3 缺陷和謬誤
7.2 修改SQL語句
7.2.1 運行機制
7.2.2 何時使用
7.2.3 缺陷和謬誤
7.3 提示
7.3.1 運行機制
7.3.2 何時使用
7.3.3 缺陷和謬誤
7.4 改變執(zhí)行環(huán)境
7.4.1 工作機制
7.4.2 何時使用
7.4.3 缺陷和謬誤
7.5 SQL概要
7.5.1 工作機制
7.5.2 何時使用
7.5.3 缺陷和謬誤
7.6 存儲提綱
7.6.1 工作機制
7.6.2 何時使用
7.6.3 缺陷和謬誤
7.7 SQL計劃基線
7.7.1 工作機制
7.7.2 何時使用
7.7.3 缺陷和謬誤
7.8 小結
第四部分 優(yōu)化器
第8章 解析
8.1 識別解析問題
8.1.1 快速解析
8.1.2 長解析
8.2 解決解析問題
8.2.1 快速解析
8.2.2 長解析
8.3 應對解析問題
8.3.1 游標共享
8.3.2 服務器端語句緩存
8.4 使用應用編程接口
8.4.1 PL/SQL
8.4.2 OCI
8.4.3 JDBC
8.4.4 ODP.NET
8.5 小結
第9章 優(yōu)化數據訪問
9.1 找出不理想的訪問路徑
9.1.1 識別
9.1.2 陷阱
9.1.3 原因
9.1.4 解決辦法
9.2 具有弱選擇性的SQL語句
9.2.1 全表掃描
9.2.2 全分區(qū)掃描
9.2.3 范圍分區(qū)
9.2.4 哈希與列表分區(qū)
9.2.5 組合分區(qū)
9.2.6 設計考慮
9.2.7 全索引掃描
9.3 具有強選擇性的SQL語句
9.3.1 rowid訪問
9.3.2 索引訪問
9.3.3 單表哈希聚簇訪問
9.4 小結
第10章 表連接優(yōu)化
10.1 定義
10.1.1 連接樹
10.1.2 連接的類型
10.1.3 限制條件與連接條件
10.2 嵌套循環(huán)連接
10.2.1 概念
10.2.2 兩表連接
10.2.3 四表連接
10.2.4 塊預取
10.2.5 其他可選的執(zhí)行計劃
10.3 合并連接
10.3.1 概念
10.3.2 兩表連接
10.3.3 四表連接
10.3.4 工作區(qū)
10.4 哈希連接
10.4.1 概念
10.4.2 兩表連接
10.4.3 四表連接
10.4.4 工作區(qū)
10.4.5 索引連接
10.5 外連接
10.6 選擇連接方法
10.6.1 FIRST_ROWS優(yōu)化目標
10.6.2 ALL_ROWS優(yōu)化目標
10.6.3 支持的連接方法
10.6.4 并行連接
10.7 分區(qū)智能連接
10.7.1 完全分區(qū)智能連接
10.7.2 部分智能分區(qū)連接
10.8 轉換
10.8.1 連接去除
10.8.2 外連接轉換為內連接
10.8.3 子查詢非嵌套化
10.8.4 星形轉換
10.9 小結
第11章 高級優(yōu)化技術
11.1 物化視圖
11.1.1 運行機制
11.1.2 何時使用
11.1.3 缺陷與謬誤
11.2 結果緩存
11.2.1 運行機制
11.2.2 何時使用
11.2.3 缺陷與謬誤
11.3 并行處理
11.3.1 運行機制
11.3.2 何時使用
11.3.3 缺陷與謬誤
11.4 直接路徑插入
11.4.1 運行機制
11.4.2 何時使用
11.4.3 缺陷與謬誤
11.5 行預取
11.5.1 運行機制
11.5.2 何時使用
11.5.3 缺陷與謬誤
11.6 數組接口
11.6.1 運行機制
11.6.2 何時使用
11.6.3 缺陷與謬誤
11.7 小結
第12章 優(yōu)化物理設計
12.1 最佳字段順序
12.2 最優(yōu)數據類型
12.2.1 數據類型選擇方面的陷阱
12.2.2 選擇數據類型的最佳實踐
12.3 行遷移與行鏈接
12.3.1 遷移與鏈接
12.3.2 問題描述
12.3.3 找出問題
12.3.4 解決方案
12.4 數據塊爭用
12.4.1 問題描述
12.4.2 找出問題
12.4.3 解決方案
12.5 數據壓縮
第五部分 附 錄
附錄A 可下載文件