Oracle性能最佳化求生指南

內容介紹

內容簡介:
Oracle資料庫的套用十分廣泛,資料庫性能的好壞直接影回響用程式能否快速回響用戶指令。而Oracle資料庫又比較複雜,資料庫性能調優成為眾多DBA最為頭疼的問題。
本書作者憑藉其20多年的豐富經驗,為我們帶來了一本系統的、全面的Oracle性能最佳化手冊,用結構化方法幫助讀者解決從資料庫套用到資料庫設計的所有問題。全書分為6部分、23章,實例豐富,兼具技術深度和廣度,被讀者譽為“最有用的Oracle性能調優參考書”。主要內容包括:
? 有效的Oracle性能最佳化方法描述;
如何充分利用Oracle的核心工具來跟蹤、監控、診斷性能;?
? 高效的資料庫邏輯與物理設計、索引設計、事務設計以及API的使用;
SQL與PL/SQL調優,包含並行SQL技術的使用;?
? 最小化排隊鎖、閂鎖、共享記憶體以及其他資料庫資源的爭用;
最佳化記憶體以及物理磁碟I/O;?
調優Oracle? RAC。
本書適用於所有的Oracle DBA。

作者介紹

作者簡介:
Guy Harrison知名Oracle技術專家,在套用與資料庫管理、性能調優、軟體開發領域有20多年的從業經驗。目前任Quest軟體公司研發總監,帶領軟體開發團隊研發了廣受歡迎的Spotlight系列產品,他負責Spotlight的Oracle版本、Oracle RAC版本、MySQL版本及SQL Server版本。除本書外,他還著有Oracle SQL High Performance Tuning、Oracle Desk Reference及MySQL Stored Procedure Programming。
譯 者 簡 介:
鄭勇斌 Oracle DBA和數據架構師,IT從業超過10年,曾經從事過政府和企業門戶、業務系統、網站系統的開發和架構工作,2006年轉型成為Oracle DBA,專職Oracle管理和性能最佳化。曾供職北大青鳥及阿里巴巴,目前就職於盛大文學,負責雲中書城的資料庫管理和系統運維。主持和參與過許多大型項目的開發,負責套用架構和系統設計。目前主要從事Oracle、MySQL、Hadoop以及NoSQL等相關產品的研究和套用。翻譯這本書時,還得追溯到在阿里巴巴與童家旺一起共事的日子,那是一段美好的日子,懷念和DBA Team兄弟共處的日子。
胡怡文 江蘇淮安漣水人。2008年加入支付寶(中國)網路技術有限公司,有幸見證了這幾年傳統DB和分散式技術在這家快速發展的公司中的套用歷程,並為之和兄弟們一起並肩戰鬥。曾任數據倉庫運維團隊Leader,經歷過Oracle->Greenplum->Hadoop的變遷。現專職於DB方面的工作。沒有最好的技術,只有最合適的技術。有志於對軟硬體相結合的DB技術和套用架構進行更深入的研究,並和大家一起分享探討。
童家旺 10年的Oracle資料庫從業經驗,對Oracle的體系結構、性能調優及故障診斷有一定的理解,參與了比較多的大型網際網路套用的設計,致力於設計高可靠、可擴展、高性能的資料庫套用。對各種後端架構(資料庫、存儲、CDN)都有興趣。曾經參與翻譯了《Oracle性能診斷藝術》(2009年11月,人民郵電出版社出版)一書。經常在微博(jametong)以及個人Blog(http://www.dbthink.com)上發表一些個人觀點以及學習心得。

作品目錄

目 錄
第一部分  方法、概念和工具
第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

相關詞條

熱門詞條

聯絡我們