深入解析DB2:高級管理、內部體系結構與診斷案例

深入解析DB2:高級管理、內部體系結構與診斷案例

《深入解析DB2:高級管理、內部體系結構與診斷案例》是2009年清華大學出版社出版的圖書。

基本信息

出版社: 清華大學出版社; 第1版 (2009年5月1日)

平裝: 471頁

正文語種: 簡體中文

開本: 16

ISBN: 9787302201373

條形碼: 9787302201373

商品尺寸: 22.6 x 18.2 x 2.6 cm

商品重量: 762 g

品牌: 清華大學出版社

ASIN: B002C1ABU4

內容簡介

《深入解析DB2:高級管理、內部體系結構與診斷案例》資料庫核心是資料庫系統穩定運行的心臟,DB2資料庫核心龐大而複雜。本書從DB2核心組件入手,同時介紹了其與作業系統在進程、共享記憶體、信號量之間的關係。作者在本書中重點介紹了各個內部組件的層次與功能、記憶體體系結構、存儲內部結構、高級鎖等。最佳化器是任何資料庫執行SQL的關鍵部分,本書對最佳化器產生的各種執行計畫進行了詳細解釋,這對於理解DB2內部工作原理大有裨益。同時,本書還介紹了DB2各種診斷工具的使用,各種資料庫配置參數含義及調整、資料庫系統視圖等。

本書封面貼有清華大學出版社防偽標籤,無標籤者不得銷售。

編輯推薦

《深入解析DB2:高級管理、內部體系結構與診斷案例》特色:

◆ 本書把DB2作為一個運行在作業系統上的普通程式,這樣更容易理解DB2在系統資源方面如何與作業系統互動的。

◆ 貫穿全書的是豐富的實踐案例和腳本,讀者可以從這些案例和腳本中觀察出作者診斷和解決問題的思路。

◆ 本書把對DB2資料庫核心講解提升到關係型資料庫管理系統應具有的組件和功能高度,熟悉其他關係型資料庫的讀者可以觸類旁通很容易理解DB2資料庫。

目錄

第1章DB2底層組件1

1.1 DB2底層組件概述1

1.2 OSS組件3

1.2.1 OSS組件功能3

1.2.2 OSS組件診斷案例5

1.3 Memory Optimizer組件6

1.4 BSU組件7

1.4.1 BSU組件功能7

1.4.2 BSU組件診斷案例8

1.5 CCI組件9

1.5.1 CCI組件功能9

1.5.2 CCI組件診斷案例10

1.6 RDS組件11

1.6.1 RDS組件功能11

1.6.2 RDS診斷案例12

1.7 DMS組件13

1.7.1 DMS組件功能13

1.7.2 DMS診斷案例14

1.8 IXM組件15

1.8.1 IXM組件功能15

1.8.2 IXM診斷案例15

1.9 BPS組件16

1.9.1 BPS組件功能16

1.9.2 BUFFERPOOL配置檔案17

1.9.3 緩衝描述符BPD 17

1.9.4 BUFFERPOOL管理算法20

1.9.5 基於塊的緩衝池24

1.9.6 BPS組件診斷案例26

1.10 DPS組件26

1.10.1 DPS組件功能26

1.10.2 DPS組件診斷案例27

1.11 DB2底層組件總結28

1.12 本章小結29

第2章DB2進程體系結構31

2.1 DB2 進程技術模型32

2.1.1 與作業系統相關的進程34

2.1.2 與實例相關的進程36

2.1.3 與資料庫相關的進程38

2.1.4 與應用程式相關的進程41

2.1.5 Windows上相關的服務/執行緒43

2.2 代理程式通信44

2.2.1 代理程式概述44

2.2.2 代理程式相關配置參數44

2.2.3 連線集中器工作原理47

2.2.4 應用程式、代理程式和交易50

2.2.5 代理和連線常見問題與最佳化51

2.2.6 DB2 V8、V9.1、V9.5 代理的差異性56

2.3 實用程式相關進程57

2.3.1 LOAD相關進程57

2.3.2 備份/恢復相關進程60

2.4 DB2 V9.5多執行緒體系結構概述62

2.4.1 多執行緒簡介62

2.4.2 DB2 V9.5主要進程64

2.4.3 監控多執行緒65

2.4.4 監控EDU運行的SQL語句67

2.5 本章小結69

第3章DB2記憶體體系結構69

3.1 32位與64位記憶體定址69

3.1.1 32位與64位定址空間69

3.1.2 32位系統常見記憶體問題71

3.1.3 32位系統記憶體定址解決方案71

3.2 DB2記憶體體系結構72

3.2.1 實例共享記憶體73

3.2.2 資料庫全局記憶體74

3.2.3 應用程式全局記憶體79

3.2.4 代理私有記憶體82

3.2.5 代理程式與應用程式通信記憶體83

3.2.6 共享記憶體與私有記憶體84

3.3 記憶體集、記憶體池和記憶體塊86

3.3.1 實例級別記憶體集87

3.3.2 跟蹤記憶體使用90

3.3.3 定位記憶體泄漏93

3.3.4 資料庫記憶體集93

3.4 記憶體自動調優96

3.4.1 記憶體自動調優示例98

3.4.2 啟用記憶體自動調優及相關參數99

3.5 本章小結99

第4章DB2存儲內部結構101

4.1 資料庫物理存儲模型101

4.1.1 DB2存儲層次結構101

4.1.2 資料庫物理目錄104

4.2 表空間存儲結構106

4.2.1 SMS表空間存儲結構107

4.2.2 DMS表空間頭部信息108

4.2.3 DMS表空間映射109

4.2.4 STRIPE SET和RANGE 112

4.2.5 表空間重平衡115

4.2.6 表空間高水位118

4.3 資料庫內部存儲結構124

4.3.1 數據頁和RID格式124

4.3.2 列在磁碟上的布局128

4.3.3 數據頁內部結構130

4.3.4 索引葉內部結構133

4.3.5 資料庫物理存儲限制138

4.4 日誌檔案存儲結構139

4.4.1 日誌存儲內容139

4.4.2 SQLOG.CTL 144

4.5 本章小結148

第5章DB2最佳化器149

5.1 DB2最佳化器介紹150

5.2 SQL語句執行過程152

5.3 最佳化器組件和工作原理154

5.3.1 查詢重寫示例:謂詞移動、合併和轉換155

5.3.2 最佳化器成本評估161

5.3.3 本地謂詞基數(CARDINALITY)估計162

5.3.4 連線基數(CARDINALITY)估計164

5.3.5 分布統計信息168

5.3.6 列組統計信息對基數的影響172

5.4 掃描方式183

5.4.1 全表掃描183

5.4.2 索引掃描184

5.4.3 RID SCAN 187

5.5 連線方法188

5.5.1 嵌套循環連線189

5.5.2 合併連線190

5.5.3 哈希(hash)連線191

5.5.4 選擇最佳連線的策略192

5.6 最佳化級別193

5.6.1 最佳化級別概述193

5.6.2 選擇最佳化級別197

5.6.3 設定最佳化級別198

5.7 基於規則的最佳化200

5.7.1 最佳化器概要檔案概述200

5.7.2 啟用最佳化概要檔案202

5.7.3 最佳化概要檔案使用示例204

5.8 如何影響最佳化器來提高性能210

5.8.1 使DB2統計信息保持最新211

5.8.2 構建適當的索引211

5.8.3 配置合理的資料庫配置參數212

5.8.4 選擇合適的最佳化級別213

5.8.5 合理的存儲I/O設計213

5.8.6 良好的應用程式設計和編碼214

5.9 最佳化器總結217

第6章 高級鎖219

6.1 隔離級別和鎖219

6.1.1 可重複讀220

6.1.2 讀穩定性221

6.1.3 游標穩定性224

6.1.4 未提交讀226

6.1.5 隔離級別加鎖示例講解228

6.1.6 隔離級別摘要232

6.2 加鎖總結234

6.2.1 如何獲取鎖234

6.2.2 意圖鎖和非意圖鎖236

6.2.3 讀鎖和寫鎖236

6.2.4 LRB(Lock Resource Block) 237

6.2.5 USE AND KEEP LOCKS 237

6.2.6 索引類型和下一鍵鎖239

6.2.7 掃描方式加鎖情況240

6.3 樂觀鎖243

6.3.1 悲觀鎖定和樂觀鎖定243

6.3.2 DB2 V9.5的樂觀鎖定245

6.3.3 樂觀鎖套用案例251

6.4 內部鎖259

6.4.1 內部方案鎖(Internal Plan Lock) 259

6.4.2 內部V鎖(Internal VariationLock) 260

6.4.3 內部S鎖262

6.4.4 內部C鎖262

6.4.5 其他內部鎖264

6.5 設定鎖相關的註冊變數268

6.5.1 DB2_EVALUNCOMMITTED 269

6.5.2 DB2_SKIPDELETED 273

6.5.3 DB2_SKIPINSERTED 274

6.6 本章小結276

第7章 資料庫配置參數279

7.1 資料庫配置參數概述279

7.2 監控和調優實例(DBM)配置參數280

7.2.1 並行相關的配置參數281

7.2.2 安全相關的配置參數283

7.2.3 環境相關的配置參數284

7.2.4 監視相關的配置參數284

7.2.5 通信相關的配置參數284

7.2.6 診斷相關的配置參數285

7.2.7 代理程式相關配置參數285

7.2.8 SHEAPTHRES 288

7.2.9 MON_HEAP_SZ 288

7.2.10 QUERY_HEAP_SZ 288

7.3 監控和調優DB配置參數288

7.3.1 記憶體相關配置參數調整290

7.3.2 應用程式堆大小(APPHEAPSZ) 298

7.3.3 SORTHEAP和SHEAPTHRES 298

7.3.4 SHEAPTHRES_SHR 301

7.3.5 鎖相關配置參數301

7.3.6 活動應用程式的最大數目(MAXAPPLS) 304

7.3.7 PKGCACHESZ 305

7.3.8 CATALOGCACHE_SZ 305

7.3.9 異步頁清除程式的數目(NUM_IOCLEANERS) 306

7.3.10 異步I/O 伺服器的數目(NUM_IOSERVERS)307

7.3.11 組提交數目(MINCOMMIT) 308

7.3.12 AVG_APPLS 310

7.3.13 CHNGPGS_THRESH (DB) 310

7.3.14 MAXFILOP 310

7.3.15 LOGPRIMARY、LOGSECOND 和LOGFILSZ 310

7.3.16 日誌緩衝區大小(LOGBUFSZ) 311

7.3.17 STMTHEAP 312

7.3.18 DFT_QUERYOPT 312

7.3.19 UTIL_HEAP_SZ (DB) 312

7.3.20 其他資料庫配置參數312

7.4 環境變數和DB2註冊表變數313

7.4.1 DB2INSTANCE變數315

7.4.2 DB2_PARALLEL_IO 316

7.4.3 DB2_USE_PAGE_CONTAINER_TAG 318

7.4.4 DB2_SELECTIVITY 319

7.4.5 DB2_INLIST_TO_NLJN 320

7.4.6 DB2_MINIMIZE_LISTPREFETCH 321

7.4.7 DB2_USE_ALTERNATE_PAGE_CLEANING 321

7.4.8 DB2_REDUCED_OPTIMIZATION 321

7.4.9 DB2_LIKE_VARCHAR 322

7.4.10 DB2_NEW_CORR_SQ_FF 324

7.4.11 DB2_OPT_MAX_TEMP_SIZE 324

7.5 本章小結325

第8章DB2數據字典327

8.1 系統目錄視圖概述327

8.2 SYSCAT系統編目視圖328

8.2.1 資料庫對象信息328

8.2.2 許可權相關的系統編目視圖330

8.2.3 程式包相關的系統編目視圖332

8.3 SYSIBMADM管理視圖334

8.3.1 監控緩衝池命中率336

8.3.2 監控PACKAGE CACHE大小336

8.3.3 監控執行成本最高的SQL語句337

8.3.4 監控運行最長的SQL語句337

8.3.5 監控SQL準備和預編譯時間最長的SQL語句338

8.3.6 監控執行次數最多的SQL語句338

8.3.7 監控排序次數最多的SQL語句339

8.3.8 監控LOCK WAIT時間339

8.3.9 監控LOCK CHAIN 340

8.3.10 監控鎖記憶體使用340

8.3.11 監控鎖升級、死鎖和鎖逾時341

8.3.12 監控全表掃描的SQL 341

8.3.13 檢查PAGE CLEANERS是否足夠342

8.3.14 監控PREFETCHER是否足夠343

8.3.15 監控資料庫記憶體使用343

8.3.16 監控日誌使用情況344

8.3.17 監控占用日誌空間最舊的交易345

8.3.18 監控存儲路徑345

8.3.19 監控表空間使用情況346

8.4 SYSSTAT系統編目視圖347

8.5 利用系統編目視圖編寫腳本案例350

8.5.1 案例1 350

8.5.2 案例2 351

8.6 保護系統編目視圖352

8.7 本章小結353

第9章 高級診斷355

9.1 db2dart和inspect 355

9.1.1 db2dart和inspect概述355

9.1.2 利用db2dart查找停頓(quiesce)表空間的用戶358

9.1.3 db2dart診斷高水位問題360

9.1.4 db2dart診斷數據頁損壞問題362

9.1.5 inspect命令使用案例365

9.2 db2pdcfg 366

9.2.1 db2pdcfg -cos選項368

9.2.2 db2pdcfg-catch選項371

9.2.3 db2pd -fodc選項376

9.3 db2trc 376

9.3.1 db2trc 376

9.3.2 db2trc案例1 385

9.3.3 db2trc案例2 386

9.4 db2_call_stack和db2nstck 395

9.5 高級診斷案例396

9.6 小結400

第10章 深入講解解釋輸出401

10.1 執行計畫基礎401

10.2 表訪問信息404

10.2.1 常規表訪問404

10.2.2 掃描方式407

10.2.3 鎖和隔離級別信息411

10.2.4 謂詞412

10.2.5 臨時表訪問416

10.3 排序419

10.3.1 排序原理419

10.3.2 共享排序與私有排序421

10.3.3 監控排序423

10.3.4 最佳化排序性能426

10.4 預取方式428

10.4.1 資料庫預取概念428

10.4.2 順序預取430

10.4.3 列表預取432

10.4.4 提高預取性能436

10.5 連線信息437

10.5.1 嵌套循環連線(NLJOIN) 438

10.5.2 合併連線(MSJOIN) 439

10.5.3 哈希連線(HSJOIN) 440

10.5.4 外連線442

10.6 IndexORing和IndexANDing 443

10.6.1 IndexORing案例443

10.6.2 IndexANDing案例445

10.7 其他輸出信息447

10.7.1 數據流信息447

10.7.2 插入、更新和刪除信息449

10.7.3 並行處理信息450

10.7.4 其他說明信息451

10.8 基於執行計畫的最佳化案例453

10.9 本章小結470

參考文獻471

相關詞條

熱門詞條

聯絡我們