1. 程式人生 > >Oracle效能優化求生指南pdf

Oracle效能優化求生指南pdf

目 錄
  第一部分  方法、概念和工具
  第1章  Oracle效能調優:一種系統化方法    2
  1.1  Oracle效能調優簡史    3
  1.2  超越表面分析法    3
  1.3  第一階段:最小化應用負載    5
  1.4  第二階段:降低爭用和瓶頸    6
  1.5  第三階段:降低物理IO    7
  1.6  第四階段:優化磁碟IO    8
  1.7  本章小結    9
  第2章  Oracle體系結構與基本概念    11
  2.1  Oracle API    11
  2.1.1  建立遊標    13
  2.1.2  檢查快取的SQL語句    13
  2.1.3  解析SQL語句    13
  2.1.4  關聯繫結變數    14
  2.1.5  執行SQL語句    15
  2.1.6  提取記錄    15
  2.1.7  使用批量提取    15
  2.1.8  處理結果集    16
  2.1.9  關閉遊標    16
  2.1.10  優化Oracle API呼叫    16
  2.2  Oracle查詢優化器    16
  2.2.1  基於成本的優化    17
  2.2.2  優化器目標    18
  2.2.3  優化器統計資訊    18
  2.2.4  繫結變數窺視與自適應遊標共享    19
  2.2.5  提示    19
  2.2.6  儲存概要、SQL概要和SQL計劃基線    19
  2.3  事務和鎖    20
  2.4  Oracle伺服器體系結構    20
  2.4.1  例項與資料庫    21
  2.4.2  系統全域性區    22
  2.4.3  資料快取    22
  2.4.4  程式全域性區    22
  2.4.5  記憶體管理    23
  2.5  段與檔案    23
  2.5.1  表    23
  2.5.2  索引    24
  2.5.3  塊、區間、段以及分割槽    24
  2.5.4  表空間與資料檔案    25
  2.5.5  回滾段    25
  2.5.6  重做日誌與歸檔日誌    25
  2.5.7  閃回日誌    25
  2.6  伺服器程序    26
  2.7  後臺程序    26
  2.8  真正應用叢集    27
  2.9  本章小結    28
  第3章  實用工具    29
  3.1  生成SQL語句的執行計劃    29
  3.1.1  計劃表    30
  3.1.2  研究快取的SQL    33
  3.1.3  DBMS_XPLAN    35
  3.1.4  解釋執行計劃    39
  3.1.5  虛擬索引    43
  3.2  跟蹤Oracle的執行    44
  3.2.1  從當前會話中呼叫跟蹤    44
  3.2.2  識別跟蹤檔案    45
  3.2.3  獲取跟蹤狀態    45
  3.2.4  在其他會話中呼叫跟蹤    46
  3.2.5  通過MODULE、ACTION或SERVICE進行跟蹤    47
  3.2.6  使用登入觸發器來啟用跟蹤    47
  3.2.7  定位跟蹤檔案    48
  3.2.8  其他特殊化的跟蹤    48
  3.3  使用tkprof格式化跟蹤檔案    49
  3.3.1  tkprof的排序選項    49
  3.3.2  其他tkprof選項    50
  3.3.3  合併多個SQL跟蹤檔案    51
  3.3.4  解釋tkprof的輸出結果    51
  3.3.5  tkprof中的執行計劃    53
  3.3.6  等待統計資訊與tkprof    54
  3.3.7  tkprof的替代品    54
  3.4  在SQL*PLUS中使用AUTOTRACE    55
  3.5  監控Oracle伺服器    56
  3.5.1  V$表介面    56
  3.5.2  等待介面    57
  3.5.3  
時間
模型    59
  3.5.4  整合時間模型與等待介面    61
  3.5.5  Oracle企業管理器    62
  3.5.6  SPOTLIGHT ON ORACLE    63
  3.6  本章小結    64
  第二部分  應用和資料庫設計
  第4章  資料庫邏輯設計和物理設計    66
  4.1  邏輯資料模型    66
  4.1.1  標準化和第三正規化    66
  4.1.2  資料型別選擇    67
  4.1.3  人造鍵    67
  4.1.4  資料倉庫設計    68
  4.2  邏輯模型到物理模型的對映    68
  4.2.1  將實體或類對映成表    69
  4.2.2  選擇表的型別    71
  4.2.3  資料型別和精度    71
  4.2.4  可選的屬性和NULL值    72
  4.2.5  列的順序    73
  4.2.6  探索Oracle物件模型    73
  4.3  反規範化    74
  4.3.1  複製列值以避免表聯結    74
  4.3.2  概要表    75
  4.3.3  垂直分割槽    75
  4.3.4  實施反規範化    76
  4.4  星型模式設計    76
  4.4.1  星型模式基礎    76
  4.4.2  雪花模式    77
  4.4.3  維度層次結構    79
  4.4.4  聚集和物化檢視    80
  4.4.5  物化檢視最佳實踐    81
  4.5  物理儲存方案    82
  4.5.1  資料段儲存手工管理和自動管理    82
  4.5.2  並行插入和空閒塊連結串列    82
  4.5.3  PCTFREE 與PCTUSED    83
  4.5.4  壓縮    84
  4.5.5  大資料欄位LOB的儲存    85
  4.6  分割槽    86
  4.6.1  分割槽的型別    86
  4.6.2  組合分割槽    87
  4.6.3  選擇一個分割槽策略    87
  4.6.4  企業管理器的分割槽顧問    87
  4.7  本章小結    89
  第5章  索引與簇    91
  5.1  Oracle索引與簇機制的概況    91
  5.2  B*樹索引    91
  5.2.1  索引選擇性    93
  5.2.2  唯一索引    93
  5.2.3  隱含索引    94
  5.2.4  組合索引    94
  5.2.5  索引跳躍掃描    95
  5.2.6  建立組合索引的指導原則    96
  5.2.7  索引合併    96
  5.2.8  索引中的空值    97
  5.2.9  反轉鍵(Reverse Key)索引    97
  5.2.10  索引壓縮    98
  5.2.11  函式索引    98
  5.2.12  外來鍵與鎖    99
  5.2.13  索引與分割槽    100
  5.3  點陣圖索引    101
  5.3.1  點陣圖索引的特性    101
  5.3.2  點陣圖索引的缺陷    102
  5.3.3  點陣圖索引與基數    103
  5.3.4  點陣圖索引合併    104
  5.3.5  點陣圖聯結索引    104
  5.4  索引的開銷    106
  5.5  索引組織表    109
  5.5.1  配置溢位段    111
  5.5.2  定期重建索引組織表(IOT)    114
  5.6  簇    114
  5.6.1  索引簇    114
  5.6.2  雜湊簇    116
  5.7  巢狀表    121
  5.8  選擇最優的索引策略    123
  5.9  本章小結    124
  第6章  應用設計與實現    125
  6.1  SQL語句管理    125
  6.1.1  優化解析    125
  6.1.2  避免執行不必要的SQL語句    129
  6.2  批量介面    133
  6.2.1  實現批量提取    133
  6.2.2  批量插入    135
  6.3  事務設計    135
  6.3.1  隔離級別    136
  6.3.2  事務與鎖    137
  6.3.3  Oracle中的行級鎖    138
  6.3.4  應用的鎖策略    139
  6.4  使用儲存過程來降低網路流量    141
  6.5  本章小結    145
  第三部分  SQL和PL/SQL調優
  第7章  優化器的優化    148
  7.1  Oracle優化器    148
  7.1.1  什麼是成本    148
  7.1.2  優化器目標    149
  7.1.3  選擇性和基數    149
  7.1.4  查詢轉換    149
  7.1.5  成本計算    150
  7.1.6  物件統計資訊    151
  7.1.7  直方圖    152
  7.1.8  繫結變數窺探    154
  7.1.9  自適應遊標共享    155
  7.1.10  資料庫引數    156
  7.1.11  系統統計資訊    159
  7.1.12  收集統計資訊    160
  7.2  使用DBMS_STAT    162
  7.2.1  DBMS_STATS的儲存過程和引數    163
  7.2.2  設定DBMS_STATS的系統預設值    165
  7.2.3  使用METHOD_OPT建立直方圖    165
  7.2.4  抽樣    166
  7.2.5  分割槽統計資訊    167
  7.2.6  擴充套件的統計資訊    167
  7.2.7  鎖定統計資訊    169
  7.2.8  系統統計資訊    170
  7.2.9  匯出和匯入統計資訊    170
  7.2.10  操縱統計資訊    170
  7.3  本章小結    171
  第8章  執行計劃管理    172
  8.1  提示    172
  8.1.1  使用提示來改變訪問路徑    174
  8.1.2  使用提示來改變聯結順序    174
  8.1.3  提示詳述中的錯誤    175
  8.2  儲存提綱    175
  8.2.1  建立儲存提綱以穩定執行計劃    176
  8.2.2  侵入儲存提綱    177
  8.3  SQL調優集    179
  8.3.1  手動建立調優集    180
  8.3.2  在企業管理器中建立調優集    181
  8.4  SQL概要和SQL調優顧問    182
  8.4.1  使用DBMS_SQLTUNE    183
  8.4.2  索引建議    185
  8.4.3  企業管理器中的SQL優化    186
  8.4.4  使用SQL訪問顧問進行交叉SQL調優    187
  8.5  SQL基線    189
  8.5.1  建立基線    189
  8.5.2  進化基線    191
  8.5.3  自動化和配置基線    194
  8.5.4  固化的基線    194
  8.5.5  在ORACLE 企業管理器中管理基線    195
  8.6  本章小結    195
  第9章  表訪問調優    197
  9.1  單值查詢    197
  9.1.1  在表和索引掃描間選擇    198
  9.1.2  點陣圖索引和單值查詢    201
  9.1.3  雜湊聚簇和單值查詢    202
  9.2  避免“意外的”表掃描    203
  9.2.1  不等條件    203
  9.2.2  空值查詢    205
  9.2.3  查詢非空值    207
  9.2.4  在可為空的列上建立索引    207
  9.2.5  無意中通過使用函式而禁用了索引    208
  9.2.6  函式索引    208
  9.2.7  函式索引和統計    209
  9.2.8  虛擬列    211
  9.3  多列查詢    212
  9.3.1  使用組合索引    212
  9.3.2  索引合併    213
  9.3.3  唯一性與覆蓋索引    213
  9.4  查詢範圍    214
  9.4.1  無界範圍掃描    214
  9.4.2  有界範圍掃描    216
  9.4.3  範圍查詢    217
  9.5  使用LIKE運算子    219
  9.6  多值單列查詢    220
  9.7  優化必要的全表掃描    221
  9.7.1  降低高水位線    221
  9.7.2  優化PCTFREE和PCTUSED    222
  9.7.3  減少記錄長度    223
  9.7.4  壓縮表    223
  9.7.5  使資料庫IO更高效    225
  9.7.6  使用抽樣選項    225
  9.7.7  並行查詢    226
  9.7.8  快速全索引掃描    227
  9.7.9  分割槽    228
  9.8  本章小結    229
  第10章  聯結與子查詢    231
  10.1  聯結型別    231
  10.2  聯結方法    232
  10.2.1  巢狀迴圈聯結    232
  10.2.2  排序合併聯結    233
  10.2.3  雜湊聯結    234
  10.3  選擇正確的聯結方法    235
  10.3.1  排序合併/雜湊與巢狀迴圈的對比    235
  10.3.2  排序合併和雜湊聯結對比    235
  10.4  優化聯結    239
  10.4.1  優化巢狀迴圈聯結    239
  10.4.2  優化排序合併聯結與雜湊聯結    240
  10.5  避免聯結    241
  10.5.1  反正規化化    242
  10.5.2  索引聚簇    242
  10.5.3  物化檢視    243
  10.5.4  點陣圖聯結索引    244
  10.6  聯結順序    244
  10.7  特殊聯結    246
  10.7.1  外聯結    246
  10.7.2  星型聯結    248
  10.7.3  層級查詢    252
  10.8  子查詢    254
  10.8.1  簡單子查詢    254
  10.8.2  關聯子查詢    256
  10.8.3  反聯結子查詢    257
  10.8.4  半聯結子查詢    259
  10.9  本章小結    260
  第11章  排序、分組與集合操作    261
  11.1  排序操作    261
  11.1.1  最優、一次和多次排序    262
  11.1.2  衡量排序活動    263
  11.1.3  跟蹤排序活動    264
  11.1.4  使用索引規避排序    265
  11.2  分組與聚合    267
  11.2.1  聚合操作    267
  11.2.2  最大值和最小值    268
  11.2.3  “前N”查詢    269
  11.2.4  計算一張表的記錄數    271
  11.2.5  分組操作    271
  11.2.6  HAVING與WHERE    273
  11.3  集合操作    274
  11.3.1  UNION與UNION ALL    275
  11.3.2  INTERSECT    275
  11.3.3  MINUS    277
  11.3.4  集合操作和它們的替代方法    278
  11.4  本章小結    279
  第12章  使用和調優PL/SQL    280
  12.1  PL/SQL的效能優勢    280
  12.1.1  過程化的方法    280
  12.1.2  減少網路開銷    280
  12.1.3  分解並攻克海量的SQL語句    281
  12.2  衡量PL/SQL的效能    281
  12.2.1  衡量PL/SQL的開銷    281
  12.2.2  使用DBMS_PROFILER    283
  12.2.3  11g的分層剖析器    284
  12.3  資料訪問優化    287
  12.3.1  陣列處理和BULK COLLECT    287
  12.3.2  對INSERT語句進行陣列處理    289
  12.3.3  繫結變數和動態SQL    290
  12.4  PL/SQL程式碼優化    292
  12.4.1  首先調優SQL    292
  12.4.2  PLSQL_OPTIMIZE_LEVEL    292
  12.4.3  迴圈優化    293
  12.4.4  “短路”表示式    295
  12.4.5  在IF和CASE語句中表達式的順序    297
  12.4.6  遞迴    298
  12.4.7  NOCOPY子句    299
  12.4.8  關聯陣列    301
  12.5  其他優化    302
  12.5.1  本地編譯    302
  12.5.2  內聯PL/SQL    304
  12.5.3  資料型別    306
  12.5.4  使用JAVA計算    307
  12.5.5  函式快取    308
  12.6  DML觸發器的效能    309
  12.6.1  UPDATE OF和WHEN子句    309
  12.6.2  BEFORE和AFTER ROW觸發器    310
  12.7  本章小結    311
  第13章  並行SQL    312
  13.1  理解並行SQL    312
  13.1.1  並行程序和並行度    314
  13.1.2  並行子程序池    315
  13.1.3  並行查詢IO    316
  13.1.4  並行效能收益    316
  13.2  決定何時使用並行處理    317
  13.2.1  伺服器計算機有多個CPU    318
  13.2.2  被訪問的資料放置在多個磁碟驅動器上    318
  13.2.3  使用並行的SQL是長時間執行的或者資源敏感的    318
  13.2.4  SQL執行最少一次全表、索引或分割槽掃描    319
  13.2.5  主機有空閒的能力    319
  13.2.6  SQL是調優過的    319
  13.3  配置並行處理    319
  13.3.1  確定並行度    319
  13.3.2  並行提示    321
  13.3.3  並行配置的引數    321
  13.4  監控並行SQL    323
  13.4.1  並行語句的執行計劃    323
  13.4.2  跟蹤並行執行    325
  13.4.3  V$PQ_TQSTAT檢視    326
  13.4.4  其他的統計資料    327
  13.5  優化並行的效能    328
  13.5.1  從一個優化過的序列執行的SQL開始    328
  13.5.2  確保這個SQL適合並行執行    329
  13.5.3  確保系統適合配置支援並行執行    329
  13.5.4  確保執行計劃的所有部分都做了並行化    329
  13.5.5  確保請求的並行度是可實現的    331
  13.5.6  監控實際的並行度    331
  13.5.7  檢查程序間資料和負載的偏差    332
  13.6  其他的並行主題    333
  13.6.1  RAC的並行執行    333
  13.6.2  並行的索引查詢    334
  13.6.3  並行DML    335
  13.6.4  並行DDL    339
  13.7  本章小結    340
  第14章  DML調優    342
  14.1  DML效能基礎    342
  14.1.1  Where子句優化    342
  14.1.2  索引開銷    343
  14.1.3  觸發器開銷    344
  14.1.4  參照完整性    345
  14.2  INSERT操作的特定優化    346
  14.2.1  批量處理    346
  14.2.2  直接路徑插入    347
  14.2.3  多表插入    349
  14.2.4  手動段儲存管理(MSSM)和空閒列表    351
  14.2.5  並行DML    351
  14.3  刪除操作    351
  14.3.1  TRUNCATE    351
  14.3.2  分割槽    352
  14.3.3  CREATE TABLE AS SELECT    352
  14.4  更新和合並操作    353
  14.4.1  關聯更新    353
  14.4.2  優化MERGE操作    355
  14.5  COMMIT優化    357
  14.5.1  COMMIT頻率    358
  14.5.2  批量和NOWAIT提交    358
  14.5.3  NOLOGGING    360
  14.6  本章小結    361
  第四部分  最小化爭用
  第15章  鎖爭用    364
  15.1  鎖的型別和模式    364
  15.2  等待鎖    367
  15.3  監控和分析鎖    368
  15.3.1  鎖等待的統計資料    368
  15.3.2  發現導致鎖爭用的SQL    371
  15.3.3  度量指定事務的鎖爭用    373
  15.3.4  跟蹤鎖行為    375
  15.3.5  阻塞者和等待者    376
  15.4  應用程式的鎖策略    379
  15.5  行級鎖什麼時候會失敗    380
  15.5.1  沒有索引的外來鍵    380
  15.5.2  事務表等待    381
  15.5.3  點陣圖索引    382
  15.5.4  直接路徑插入    383
  15.6  系統鎖    383
  15.6.1  高水位標記enqueue    384
  15.6.2  空間事務enqueue    384
  15.6.3  序列快取enqueue    384
  15.6.4  使用者鎖enqueue    385
  15.6.5  其他的系統鎖    385
  15.7  本章小結    386
  第16章  閂鎖和互斥爭用    387
  16.1  閂鎖和互斥架構的簡介    387
  16.1.1  GETS、SPINS和SLEEPS    388
  16.1.2  互斥    388
  16.2  度量和診斷閂鎖/互斥爭用    389
  16.2.1  識別單個的閂鎖    390
  16.2.2  發現與閂鎖等待相關的SQL和段    391
  16.3  特定的閂鎖和互斥場景    392
  16.3.1  Library Cache Mutex等待    393
  16.3.2  Library Cache Pin    394
  16.3.3  Shared Pool Latch    395
  16.3.4  Cache Buffers Chains Latch    395
  16.3.5  Row Cache Object閂鎖    397
  16.3.6  其他的閂鎖場景    398
  16.4  閂鎖爭用是不可避免的嗎    399
  16.4.1  改變_SPIN_COUNT怎麼樣    399
  16.4.2  自旋計數、閂鎖爭用和吞吐量    400
  16.4.3  設定單個閂鎖的自旋計數    402
  16.5  本章小結    402
  第17章  共享記憶體爭用    404
  17.1  緩衝區快取記憶體架構    404
  17.2  空閒緩衝塊等待    406
  17.2.1  DBWR直接和非同步IO    407
  17.2.2  空閒緩衝塊等待的其他補救措施    409
  17.3  恢復寫程序等待    410
  17.3.1  提高閃回日誌IO    411
  17.3.2  增加閃回日誌緩衝的大小    412
  17.4  緩衝忙等待    414
  17.4.1  度量緩衝忙    414
  17.4.2  緩衝忙等待的傳統原因    414
  17.4.3  緩衝忙和熱塊    415
  17.5  重做日誌緩衝等待    417
  17.6  本章小結    419
  第五部分  優化記憶體
  第18章  緩衝區快取記憶體調優    422
  18.1  緩衝區快取記憶體的原理    422
  18.1.1  最近最少使用列表    423
  18.1.2  表掃描處理    423
  18.1.3  CACHE屬性    424
  18.1.4  直接路徑IO    424
  18.2  緩衝區快取記憶體配置和調優    425
  18.2.1  監控緩衝區快取記憶體    425
  18.2.2  緩衝區快取記憶體命中率    426
  18.2.3  多個緩衝區快取記憶體    428
  18.2.4  設定緩衝區快取記憶體的大小    430
  18.3  自動共享記憶體管理    433
  18.3.1  實現ASMM    433
  18.3.2  監控重設大小操作    434
  18.3.3  調優ASMM    435
  18.3.4  非預設池    436
  18.3.5  記憶體抖動    437
  18.4  本章小結    439
  第19章  優化PGA記憶體    440
  19.1  IO和PGA記憶體    440
  19.2  PGA記憶體管理    441
  19.2.1  PGA_AGGREGATE_TARGET    441
  19.2.2  會話的PGA限制    442
  19.3  測量PGA的使用和效率    443
  19.3.1  會話的PGA利用率    445
  19.3.2  測量臨時IO等待時間    446
  19.3.3  測量工作區活動    448
  19.4  用V$PGA_TARGET_ADVICE來設定PGA的大小    449
  19.5  覆寫PGA總量目標    452
  19.6  本章小結    454
  第20章  其他的記憶體管理主題    455
  20.1  優化整體的Oracle記憶體    455
  20.1.1  IO等待時間和記憶體優化    455
  20.1.2  使用顧問來分配PGA和緩衝區快取記憶體的記憶體    458
  20.1.3  Oracle 11g的自動化記憶體管理    464
  20.2  結果集快取    470
  20.2.1  啟用和配置結果集快取    471
  20.2.2  結果集快取的統計資料    471
  20.2.3  結果集快取的依賴    474
  20.2.4  結果集快取閂鎖    474
  20.3  其他的記憶體優化    476
  20.3.1  設定共享池的大小    476
  20.3.2  設定大池的大小    478
  20.3.3  重做日誌快取    478
  20.3.4  鎖定SGA    478
  20.4  本章小結    479
  第六部分  IO調優和叢集
  第21章  磁碟IO調優基礎    482
  21.1  磁碟IO的概念    482
  21.1.1  服務時間和吞吐量    482
  21.1.2  排隊    483
  21.1.3  磁碟驅動器:慢和正在變得更慢    483
  21.1.4  磁碟容量和資料分佈    484
  21.2  Oracle IO架構    484
  21.2.1  資料檔案單塊讀    485
  21.2.2  多塊讀    485
  21.2.3  直接路徑讀    486
  21.2.4  臨時直接路徑IO    486
  21.2.5  資料檔案寫IO    486
  21.2.6  直接路徑寫    487
  21.2.7  重做日誌IO    487
  21.2.8  歸檔日誌IO    487
  21.2.9  閃回IO    488
  21.2.10  控制檔案IO    488
  21.3  度量和監控Oracle IO    488
  21.3.1  IO等待次數    488
  21.3.2  監控資料檔案IO    492
  21.3.3  IO基準測試    494
  21.4  優化資料檔案IO    495
  21.4.1  最小化IO延時    495
  21.4.2  最大化IO吞吐量    496
  21.4.3  條帶化策略    497
  21.4.4  RAID陣列    497
  21.4.5  隔離資料檔案IO    500
  21.5  重做和歸檔優化    500
  21.5.1  交替和分發日誌    501
  21.5.2  重做和歸檔裝置的細粒度條帶化    501
  21.5.3  對重做日誌使用RAID5大聲說不    502
  21.5.4  重做日誌大小    503
  21.6  閃回日誌    506
  21.7  本章小結    507
  第22章  高階IO技術    508
  22.1  自動儲存管理    508
  22.1.1  ASM架構    509
  22.1.2  ASM監控    510
  22.1.3  ASM調優    515
  22.2  固態磁碟(SSD)    520
  22.2.1  基於快閃記憶體的SSD    520
  22.2.2  基於隨機儲存器的DDR
  SSD    520
  22.2.3  混合的SSD    521
  22.2.4  為Oracle資料庫使用SSD    521
  22.3  EXADATA儲存伺服器    522
  22.4  資料庫塊大小    522
  22.5  本章小結    524
  第23章  優化RAC    525
  23.1  RAC概覽    525
  23.1.1  全域性快取請求    526
  23.1.2  RAC調優原則    528
  23.1.3  單例項調優和RAC    528
  23.2  度量叢集開銷    529
  23.3  減少全域性快取延時    532
  23.3.1  度量全域性快取延時    532
  23.3.2  檢查內部互連    534
  23.3.3  內部互連問題的訊號    536
  23.4  優化內部互連    537
  23.4.1  網路硬體和協議    537
  23.4.2  乙太網特大幀    537
  23.4.3  UDP緩衝大小    538
  23.4.4  LMS等待    539
  23.5  叢集負載均衡    541
  23.5.1  評估叢集負載均衡    541
  23.5.2  叢集負載均衡和服務    544
  23.5.3  RAC負載均衡服務    547
  23.6  最小化全域性快取請求    548
  23.6.1  高的全域性快取請求比例的原因    548
  23.6.2  度量全域性快取請求比例    549
  23.6.3  減少全域性快取請求的技巧    550
  23.7  本章小結    551
  參考書目    552