第1章 性能優化的挑戰
1.1 為什麼要進行性能優化
1.2 編寫本書的原因
1.3 本書讀者對象
1.4 讀者的好消息
1.5 醫師到魔術師的方法
1.5.1 可適應性的需要
1.5.2 理解而非技巧
1.5.3 避免猜測
1.5.4 銀彈
1.5.5 解決錯誤問題
1.5.6 揭露一個大秘密
1.5.7 與Oracle保持同步更新
1.6 藝術還是科學
1.7 預優化
1.8 小結
第2章 許多優化策略失敗的原因
2.1 失敗的策略
2.2 不完善的性能優化方法
2.2.1 銀彈方法
2.2.2 偷工減料
2.2.3 快速培訓班
2.2.4 偏愛的思想
2.2.5 解決錯誤的問題
2.2.6 猜測法
2.2.7 避免責備
2.2.8 其他障礙
2.3 小結
第3章 Oracle醫師
3.1 定義問題
3. 1. 1 確定需求
3.1.2 定義需求的藝術
3.1.3 切忌孤軍奮戰
3.1.4 Oracle醫生的"就職誓言"
3.1.5 無需太多的技術
3.2 找到主訴癥狀
3.2.1 "數據庫是壞的"
3.2.2 仔細傾聽
3.2.3 適時地問一些問題
3.2.4 查看所展示的問題
3.2.5 必要時尋求幫助
3.3 小結
第4章 處理人際關係
4.1 性能優化問題中的人為因素
4.2 DBA的角色
4.2.1 集中解決客戶的問題
4.2.2 采取一個積極的方法
4.2.3 建立相互信任的人際關係
4.2.4 準確地報告問題
4.2.5 避免傲慢的態度
4.2.6 承擔責任
4.2.7 避免責備
4.2.8 詢問問題
4.2.9 接受批評
4.3 小結
第5章 Oracle偵探
5.1 驗證問題的存在
5.1.1 問題確實存在嗎
5.1.2 檢查基本信息
5.1.3 錯誤消息
5.1.4 在控製環境下重新運行應用程序
5.1.5 檢查運行日誌
5.1.6 查詢V$SQL視圖以找到SQL語句
5.1.7 未使用綁定變量所帶來的問題
5.1.8 采用工具監控應用程序
5.1.9 監視活動和非活動會話
5.2 量化問題
5. 2. 1 需要關注的問題
5.2.2 方法
5.2.3 生成跟蹤文件
5.2.4 計時信息
5.2.5 許可及文件大小
5.2.6 TKPROF
5.3 注意所有異常因素
5.4 小結
第6章 收集更多的綫索
6.1 等什麼
6.2 等待事件的類型
6.3 視圖概述
6.3.1 V$EVENT_NAME
6.3.2 V$SYSTEM_EVEN7
6.3.3 V$SESSION_EVENT
6.3.4 V$SESSION_WAIT
6.4 使用係統事件10046進行跟蹤
6.5 等待事件的使用例子
6.6 重要的警告
6.6.1 不是數據庫引起的延遲
6.6.2 無法監測CPU時間
6.6.3 沒有監測到的邏輯讀
6.6.4 時間精確度
6.7 小結
第7章 Oracle病理學傢
7.1 隔離根本原因
7.2 找齣性能降低的根源
7.2.1 找齣真正的原因
7.2.2 性能預算
7.3 簡化
7.4 分治法
7.4.1 分化SQL代碼
7.4.2 簡化錶連接
7.5 活動時間錶方法
7.6 性能問題的常見原因
7.6.1 應用程序設計
7.6.2 數據庫設計
7.6.4 批處理任務的乾擾
7.6.5 硬件
7.7 尋找根本原因的其他建議
7.7.1 簡單的計時測試
7.7.2 大的結果集
7.8 小結
第8章 分析SQL瓶頸
8.1 SQL優化的作用
8.1.1 SQL分析人員的好消息
8.1.2 SQL分析的其他好處
8.2 使用新的數據庫功能
8.2.1 需要重新學習一些內容
8.2.2 更改過程中的穩定性
8.2.3 工具集中的新工具
8.3 從哪兒開始
8.3.1 查看統計數字
8.3.2 産生新的統計數字
8.3.3 確保運行的SQL可實現預期的功能
8.3.4 查看結果集的大小
8.3.5 各種優化過程入口的匯總
8.4 Oracle執行計劃
8.4.1 獲得執行計劃
8.4.2 準備使用EXPLAINPLAN功能
8.4.3 運行EXPLANPLAN語句
8.4.4 執行計劃的內容
8.4.5 Oracle提供的其他腳本
8.4.6 使用SQL*PlusAUTOTRACE獲得執行計劃
8.4.7 解釋執行計劃
8.5 視圖和過濾
8.6 子查詢
8.7 SQL優化的其他技巧
8.7.1 對象瀏覽工具
8.7.2 索引瀏覽工具
8.7.3 注意全錶掃描
8.7.4 不要忽略邏輯讀
8.7.5 指導開發人員
8.7.6 考慮緩存效果
8.8 計劃錶更為高級的功能
8.9 小結
第9章 分析SQL連接
9.1 什麼是連接
9.1.1 等值連接和9連接
9.1.2 內連接
9.1.3 外連接
9.2 連接技巧
9.2.1 嵌套循環
9.2.2 排序閤並
9.2.3 哈希連接
9.2.4 群集連接
9.3 連接優化
9.3.1 選擇閤適的連接
9.3.2 SQL提示
9.4 分析連接的圖形化方法
9.4.1 顯示錶和連接條件
9.4.2 列齣過濾統計數字
9.4.3 開始連接
9.4.4 繼續連接
9.4.5 多個條件
9.4.6 處理到大錶的連接
9.5 影響連接的init.ora參數
9.6 其他連接主題
9.6.1 連接遠程錶
9.6.2 笛卡爾積
9.6.3 數據倉庫的特殊連接
9.7 小結
第10章 病理學傢的工具箱:其他策略
10.1 分析緩慢的數據庫
10.1.1 是否每個人都覺得性能很慢
10.1.2 是否能夠將問題歸結於一部分原因
10.2 找齣最差的癥狀
10.2.1 監視活動會話
10.2.2 確保沒有阻塞會話
10.2.3 徹底檢查網絡
10.2.4 查看資源消耗大戶
10.2.5 磁盤等待時間
10.2.6 查看參數極值的設置
10.2.7 留心分布式查詢
10.3 操作係統工具
10.3.1 top
10.3.2 uptime
10.3.3 sar
10.3.4 sar選項
10.3.5 使用Sar查找曆史記錄
10.3.6 iostat
10.3.7 vmstat
10.3.8 Windows操作係統中的工具
10.4 Oracle Statspack
10.4.1 安裝Statspack
10.4.2 使用PERFSTAT快照
10.4.3 運行Statspack報告
10.4.4 報告示例
10.4.5 基礎信息
10.4.6 緩存大小
10.4.7 加載簡檔
10.4.8 實例效率
10.4.9 前五個等待事件
10.4.10 與前颱進程相關的所有等待事件
10.4.11 與後颱進程相關的所有等待事件
10.4.12 實例統計
10.4.13 錶空間統計數字
10.4.14 文件I/O統計數字
10.4.15 緩衝池統計數字
10.4.16 實例恢復統計數字
10.4.17 PGA聚集內存統計數字
10.4.18 PGA內存統計數字
10.4.19 迴滾段統計數字
10.4.20 迴滾段存儲
10.4.21 撤銷段摘要
10.4.22 閂鎖活動
10.4.23 SGA內存摘要
10.4.24 init.ora參數
10.4.25 刪除過時的快照數據
10.4.26 使用Statspack的建議
10.5 其他技巧
10.5.1 Oracle9i對Statspack的改進
10.5.2 後颱揭密:快照的實際工作
10.6 小結
第11章 Oracle藝術傢
11.1 繪製解決方案
11.1.1 常規解決方案
11.1.2 更為復雜問題的解決方案:特殊的性能策略
11.2 OracleBug
11.2.1 難道處處都有Bug
11.2.2 找齣大Bug:報警
11.2.3 TAR的麻煩世界
11.2.4 其他排除Bug的方法
11.3 新的優化選項
11.3.1 DatabaseResourceManager
11.3.2 物化視圖
11.3.3 查詢改寫
11.4 "不可能"的問題
11.4.1 與其他Oracle專業人員聯係
11.4.2 谘詢係統管理員
11.4.3 Metalink
11.4.4 Oracle論壇
11.4.5 白皮書
11.4.6 有用的Web網站
11.5 小結
第12章 藝術傢的調色闆
12.1 SQL提示
12.1.1 何時使用SQL提示
12.1.2 如何使用提示
12.1.3 優化器模式提示
12.1.4 錶和索引提示
12.1.5 連接提示
12.1.6 特殊的SQL提示
12.1.7 SQL提示疑難解分析
12.1.8 語法注意事項
12.2 PGA自動內存管理
10.2.5 磁盤等待時間
10.2.6 查看參數極值的設置
10.2.7 留心分布式查詢
12.2.1 設置PGA目標
12.2.2 PGA目標的優勢
12.2.3 使用新的PGA參數
12.2.4 估算PGA需求
12.2.5 特殊的PGA視圖
12.2.6 特殊的PGA術語
12.2.7 監視PGA內存優化
12.2.8 計算新的PGA內存目標
12.3 柱狀圖
12.3.1 柱狀圖需求
12.3.2 柱狀圖的樣式
12.3.3 Oracle風格的柱狀圖
12.3.4 生成柱狀圖的傳統方法
12.3.5 生成柱狀圖的新方法
12.3.6 查看柱狀圖
12.3.7 柱狀圖的局限性
12.4 小結
第13章 Oracle魔術師
13.1 設置舞颱
13.1.1 測試解決方案
13.1.2 考慮對産品係統的影響
13.1.3 保存現有係統
13.2 揮動魔棒
13.2.1 念動咒語!讓所有不滿意的用戶消失
13.2.2 確定性能變化
13.2.3 檢查統計數據
13.2.4 觀察意外齣現的結果
13.3 如果犯瞭錯
13.3.1 是否是正確的修正
13.3.2 係統如何不同
13.3.3 捕獲相關的SQL
13.4 做好收尾工作
13.4.1 將解決方案記錄入檔
13.4.2 性能改進日誌
13.4.3 結束與客戶的交流
13.5 下一步操作
13.5.1 公布所學的內容
13.5.2 創建性能公文夾
13.6 小結
第14章 案例分析
14.1 為什麼要花時間進行案例分析
14.2 使用案例分析
14.3 小結
附錄A 有用的V$視圖定義
· · · · · · (
收起)