目 錄
第1章 優化錶性能 1
攻略1-1 創建具有最優性能的數據庫 1
攻略1-2 創建具有最優性能的錶空間 4
攻略1-3 匹配錶類型與業務需求 6
攻略1-4 選擇有益於性能的錶特性 8
攻略1-5 在創建數據錶時避免盤區分配延遲 9
攻略1-6 數據加載速度最大化 11
攻略1-7 高效移除錶中數據 13
攻略1-8 顯示自動段顧問建議 15
攻略1-9 手工生成段顧問建議 18
攻略1-10 自動發送段顧問輸齣電子郵件 22
攻略1-11 重建跨多個數據塊的數據行 23
攻略1-12 釋放未使用的錶存儲空間 26
攻略1-13 壓縮數據以進行直接路徑加載 27
攻略1-14 為所有DML操作壓縮數據 30
攻略1-15 在列級壓縮數據 31
攻略1-16 監控錶使用率 33
第2章 選擇和優化索引 35
攻略2-1 理解B樹索引 36
攻略2-2 選擇需要建立索引的列 41
攻略2-3 創建主鍵索引 44
攻略2-4 創建唯一索引 45
攻略2-5 為外鍵列創建索引 48
攻略2-6 何時使用組閤索引 49
攻略2-7 通過壓縮減少索引大小 51
攻略2-8 實現基於函數的索引 52
攻略2-9 在虛擬列上創建索引 54
攻略2-10 平衡索引的I/O 56
攻略2-11 新增一個索引而不影響已有的應用 57
攻略2-12 創建支持星型架構的位圖索引 58
攻略2-13 創建位圖連接索引 59
攻略2-14 創建索引組織錶 60
攻略2-15 監控索引使用 62
攻略2-16 索引創建速度最大化 63
攻略2-17 迴收未使用的索引空間 64
第3章 優化實例內存 68
攻略3-1 自動內存管理 68
攻略3-2 管理多個緩衝池 71
攻略3-3 設定內存最小值 73
攻略3-4 監控內存調整操作 74
攻略3-5 優化內存使用 75
攻略3-6 調優PGA內存分配 77
攻略3-7 配置服務器查詢緩存 79
攻略3-8 管理服務器結果緩存 81
攻略3-9 緩存SQL查詢結果 83
攻略3-10 緩存客戶端結果集 86
攻略3-11 緩存PL/SQL函數結果 88
攻略3-12 配置Oracle數據庫智能閃存緩存 91
攻略3-13 調節重做日誌緩衝區 93
第4章 監控係統性能 95
攻略4-1 實現AWR 95
攻略4-2 修改統計信息時間間隔和保存期限 97
攻略4-3 手工生成AWR報錶 99
攻略4-4 通過企業管理器生成一份AWR報告 101
攻略4-5 為一條SQL語句生成AWR報告 102
攻略4-6 為數據庫創建統計基綫 103
攻略4-7 通過企業管理器管理AWR基綫 106
攻略4-8 管理AWR統計信息庫 109
攻略4-9 自動創建AWR基綫 110
攻略4-10 快速分析AWR輸齣 112
攻略4-11 手工獲取活動會話信息 113
攻略4-12 從企業管理器中獲取ASH信息 117
攻略4-13 從數據字典中獲取ASH信息 119
第5章 最小化係統資源爭奪 123
攻略5-1 理解響應時間 123
攻略5-2 確定引起最多等待的SQL語句 126
攻略5-3 分析等待事件 126
攻略5-4 理解等待事件的分類 128
攻略5-5 檢查會話等待 128
攻略5-6 按類型檢查等待事件 130
攻略5-7 解決緩衝區忙等待 132
攻略5-8 解決日誌文件同步等待 134
攻略5-9 被另一個會話讀取等待事件的最小化 135
攻略5-10 減少直接路徑讀取等待事件 136
攻略5-11 恢復寫入器等待最小化 137
攻略5-12 找齣誰持有阻塞鎖 138
攻略5-13 確定被阻塞和引起阻塞的會話 140
攻略5-14 處理引起阻塞的鎖 141
攻略5-15 確定被鎖定的對象 142
攻略5-16 解決enq:TM鎖資源爭奪 143
攻略5-17 確定最近被鎖住的會話 145
攻略5-18 分析數據庫中最近的等待事件 147
攻略5-19 確定由於鎖定所花費的等待時間 149
攻略5-20 鎖存器爭奪的最小化 151
攻略5-21 通過Oracle企業管理器來管理鎖 154
攻略5-22 通過Oracle企業管理器分析等待 155
第6章 分析操作係統性能 157
攻略6-1 檢測磁盤空間問題 159
攻略6-2 確定係統瓶頸 161
攻略6-3 確定係統瓶頸(Solaris) 163
攻略6-4 確定消耗服務器資源最多的進程(top) 164
攻略6-5 確定CPU和內存瓶頸 166
攻略6-6 確定I/O瓶頸 167
攻略6-7 識彆網絡密集型進程 170
攻略6-8 檢修數據庫網絡連接性 171
攻略6-9 將一個資源密集型進程映射到一個數據庫進程 172
攻略6-10 終止一個資源密集型進程 175
第7章 檢修數據庫 177
攻略7-1 確定最優的撤銷保留時間 177
攻略7-2 找齣是什麼消耗瞭最多的撤銷空間 181
攻略7-3 解決ORA-01555錯誤 182
攻略7-4 監控臨時錶空間使用率 184
攻略7-5 確定是誰在使用臨時錶空間 185
攻略7-6 解決“無法擴展臨時數據段”錯誤 186
攻略7-7 解決打開遊標錯誤 188
攻略7-8 解決被掛起的數據庫問題 190
攻略7-9 激活自動診斷庫命令解釋器 194
攻略7-10 從ADRCI中來查看報警日誌 198
攻略7-11 使用ADRCI查看事件 200
攻略7-12 將事件打包發給Oracle技術支持團隊 202
攻略7-13 運行一次數據庫健康檢查 203
攻略7-14 創建SQL測試用例 205
攻略7-15 生成一份AWR報告 208
攻略7-16 比較兩個階段的數據庫性能 210
攻略7-17 分析一份AWR報告 212
第8章 創建高效的SQL 216
攻略8-1 獲取一張錶中的所有數據行 216
攻略8-2 獲取一張錶中的部分數據行 218
攻略8-3 通過相對應的行來連接錶 220
攻略8-4 在沒有相對應數據行的情況下連接錶 222
攻略8-5 構造簡單的子查詢 224
攻略8-6 構建相關子查詢 228
攻略8-7 比較兩個錶找齣缺失的數據行 230
攻略8-8 比較兩張錶找齣匹配的數據行 231
攻略8-9 將相似SELECT語句的結果集閤並 232
攻略8-10 查找一定範圍內的值 234
攻略8-11 處理空值 237
攻略8-12 搜索部分列值 240
攻略8-13 重用共享池中的SQL語句 243
攻略8-14 避免偶然的全錶掃描 246
攻略8-15 創建高效的臨時視圖 248
攻略8-16 避免使用NOT子句 250
攻略8-17 控製事務大小 252
第9章 SQL手工調優 255
攻略9-1 顯示查詢的執行計劃 256
攻略9-2 定製執行計劃輸齣 258
攻略9-3 圖形化顯示執行計劃 261
攻略9-4 解讀一份執行計劃 262
攻略9-5 監控運行時間較長的SQL語句 264
攻略9-6 確定當前正在執行的耗占資源的SQL語句 265
攻略9-7 查看當前正在運行的SQL語句的統計信息 266
攻略9-8 監控一個SQL執行計劃的處理過程 269
攻略9-9 確定過去執行的SQL語句中最耗占資源的語句 271
攻略9-10 比較係統修改後的SQL性能 273
第10章 追蹤SQL執行 278
攻略10-1 環境準備 278
攻略10-2 追蹤一個特定的SQL語句 280
攻略10-3 在你所擁有的會話中啓用追蹤 282
攻略10-4 找到追蹤文件 283
攻略10-5 檢查原始SQL追蹤文件 284
攻略10-6 分析Oracle追蹤文件 285
攻略10-7 使用TKPROF設置追蹤文件的格式 286
攻略10-8 分析TKPROF輸齣 287
攻略10-9 使用Oracle追蹤分析器分析追蹤文件 290
攻略10-10 追蹤一個並行查詢 293
攻略10-11 追蹤特定的並行查詢進程 294
攻略10-12 在RAC係統中追蹤並行查詢 295
攻略10-13 閤並多個追蹤文件 296
攻略10-14 找齣正確的會話來進行追蹤 297
攻略10-15 追蹤一個SQL會話 297
攻略10-16 通過進程ID來追蹤會話 299
攻略10-17 追蹤多個會話 300
攻略10-18 追蹤一個實例或數據庫 301
攻略10-19 為會話生成事件10046追蹤 302
攻略10-20 為實例生成事件10046追蹤 304
攻略10-21 在一個正在運行的會話上設置追蹤 304
攻略10-22 登錄之後啓用會話追蹤 305
攻略10-23 追蹤優化器的執行路徑 306
攻略10-24 生成Oracle錯誤自動追蹤 309
攻略10-25 追蹤後颱進程 310
攻略10-26 啓用Oracle監聽器追蹤 311
攻略10-27 為數據衛士設置歸檔追蹤 312
第11章 SQL自動調優 314
攻略11-1 顯示自動SQL調優工作詳細信息 316
攻略11-2 顯示SQL自動調優建議 318
攻略11-3 生成SQL腳本來實現自動調優建議 322
攻略11-4 修改SQL自動調優特性 323
攻略11-5 禁用和啓用SQL自動調優 325
攻略11-6 修改維護窗口屬性 326
攻略11-7 創建SQL調優集對象 327
攻略11-8 查看AWR中的資源密集型SQL語句 328
攻略11-9 查看內存中的資源密集型SQL語句 330
攻略11-10 用AWR中高資源消耗的SQL來填充優化集 332
攻略11-11 用內存中高資源消耗的SQL來填充調優集 333
攻略11-12 將內存中所有SQL語句填充到SQL調優集 334
攻略11-13 顯示SQL調優集的內容 335
攻略11-14 有選擇地從SQL調優集中刪除語句 337
攻略11-15 傳輸SQL調優集 338
攻略11-16 創建調優任務 340
攻略11-17 手工運行SQL調優顧問 342
攻略11-18 從數據庫自動診斷監視器中獲得SQL調優建議 345
第12章 執行計劃優化與一緻性 348
攻略12-1 創建並接受SQL概要 351
攻略12-2 自動接受SQL概要文件 354
攻略12-3 顯示SQL概要文件信息 356
攻略12-4 禁用SQL概要文件 358
攻略12-5 刪除SQL概要文件 360
攻略12-6 移動SQL概要文件 361
攻略12-7 自動增加計劃基綫 363
攻略12-8 為一條SQL語句創建計劃基綫 365
攻略12-9 為包含在SQL調優集中的SQL語句創建計劃基綫 366
攻略12-10 修改計劃基綫 368
攻略12-11 確認是否存在計劃基綫 370
攻略12-12 顯示計劃基綫執行計劃 371
攻略12-13 在計劃基綫中加入一個新的計劃(擴展) 372
攻略12-14 禁用計劃基綫 375
攻略12-15 移除計劃基綫信息 376
攻略12-16 遷移計劃基綫 377
第13章 優化器配置 380
攻略13-1 選擇優化器目標 380
攻略13-2 啓用統計信息自動收集 381
攻略13-3 為統計信息收集設置首選參數 383
攻略13-4 手工生成統計信息 388
攻略13-5 鎖定統計信息 389
攻略13-6 處理統計信息的缺失 390
攻略13-7 導齣統計信息 392
攻略13-8 還原以前版本的統計信息 393
攻略13-9 收集係統統計信息 394
攻略13-10 驗證新的統計信息 397
攻略13-11 強製優化器使用某個索引 399
攻略13-12 啓用查詢優化器特性 400
攻略13-13 阻止數據庫創建柱狀圖 402
攻略13-14 不使用綁定變量提高性能 403
攻略13-15 理解自適應遊標共享 406
攻略13-16 在錶達式上創建統計信息 411
攻略13-17 為相關列創建統計信息 412
攻略13-18 自動創建列組 413
攻略13-19 維護分區錶統計信息 415
攻略13-20 為大錶並行收集統計信息 416
第14章 實現查詢提示 419
攻略14-1 編寫一個提示 419
攻略14-2 改變訪問路徑 420
攻略14-3 改變連接順序 424
攻略14-4 改變連接方法 425
攻略14-5 改變優化器版本 428
攻略14-6 在快速響應和整體優化之間進行選擇 428
攻略14-7 進行直接路徑插入 430
攻略14-8 在視圖中加入提示 432
攻略14-9 緩存查詢結果 434
攻略14-10 將分布式查詢引導到一個特定的數據庫 437
攻略14-11 收集查詢執行的擴展統計信息 441
攻略14-12 啓用查詢改寫 442
攻略14-13 提升星型架構查詢的性能 444
第15章 並行執行SQL 447
攻略15-1 為特定查詢啓用並行 447
攻略15-2 在創建對象時啓用並行 451
攻略15-3 為已經存在的對象啓用並行 452
攻略15-4 實現並行DML 453
攻略15-5 並行創建錶 456
攻略15-6 並行創建索引 458
攻略15-7 並行重建索引 459
攻略15-8 並行移動分區 460
攻略15-9 並行拆分分區 461
攻略15-10 啓用自動並行度 462
攻略15-11 檢查並行解釋計劃 463
攻略15-12 監控並行操作 466
攻略15-13 找齣並行進程中的瓶頸 468
攻略15-14 獲取並行會話的詳細信息 469
索引 471
· · · · · · (
收起)