編輯推薦
Ask Tom!數據庫技術大佬經典暢銷書新版凝聚專傢數十年的寶貴經驗和真知灼見公認的Oracle數據庫指南針對Oracle 12c闡述雲架構之美Oracle中國架構師和研發人員傾心翻譯不止於技,更傳授道,值得你一讀再讀本書深入分析瞭Oracle數據庫體係結構,包括文件、內存結構以及構成Oracle數據庫和實例的底層進程,利用具體示例討論瞭一些重要的數據庫主題,同時分析瞭數據庫中的物理結構,如錶、索引和數據類型,並介紹采用哪些技術能使用這些物理結構。新版在前兩版的基礎上,增加瞭針對Oracle Database 12c諸多特性的介紹。新增內容重點關注12c的雲架構,以及可插拔式數據庫的應用。
內容簡介
本書是一本關於Oracle數據庫體係結構的圖書,涵蓋瞭所有重要的Oracle體係結構特性,包括文件、內存結構和進程,鎖和閂,事務、並發和多版本,錶和索引,數據類型,分區和並行,以及數據加密等,並利用具體的例子來全麵介紹每個特性,不僅討論瞭各個特性是什麼,還說明瞭它是如何工作的,如何使用這個特性來開發軟件,以及有關的常見陷阱。本書的讀者對象是數據庫開發人員。
作者簡介
Thomas Kyte,Oracle數據庫大師,長期主持Oracle Magazine “Ask Tom”專欄,熱心迴答睏擾全世界Oracle開發人員和DBA的各種問題。曾任Oracle公司核心技術集團副總裁。從5.1.5c版本開始使用Oracle,自7.0.9版本發布至2015年8月一直任職於Oracle公司,幫助Oracle數據庫用戶設計和構建係統,或者對係統進行重構和調優。此前他曾是一位係統集成師,主要為美國軍方和政府部門的客戶構建大規模的異構數據庫和應用。Darl Kuhn,Oracle公司DBA,同時也在美國瑞吉斯大學教授Oracle相關課程。他樂於分享知識,著有多本數據庫相關書籍,如《深入理解Oracle 12c數據庫管理(第2版)》《Oracle Database 12c性能優化攻略》等。
精彩書評
“在數據為王的時代,數據庫在軟件領域受到瞭前所未有的關注。這本書是Oracle數據庫大師的經典之作,對以數據庫為核心的軟件設計和開發進行瞭全麵深入的解析,經過Oracle中國數據庫專傢們的專業翻譯,相信對廣大的開發者將有非常大的幫助。”
——蘇鼕林,Oracle公司解決方案中心總經理
“Oracle Database12c是全新的麵嚮雲設計的數據庫,並針對企業雲計算應用做齣瞭多項技術創新,如內存計算、多租戶等。Thomas Kyte作為全球著名的Oracle數據庫大師,其多本著作讓全球Oracle技術愛好者廣為受益。硃龍春是國內為數不多的Oracle技術領域的典範。我相信通過老硃和Oracle研發同事的傾心翻譯,這本針對12c雲架構的經典著作會給國內的廣大Oracle技術愛好者帶來一份技術盛宴。”
——李珈,Oracle公司數據庫技術部總經理
目錄
第1章 開發成功的Oracle應用 1
1.1 我的方法 2
1.2 黑盒方法 3
1.3 開發數據庫應用的正確(和不正確)方法 11
1.3.1 瞭解Oracle體係結構 11
1.3.2 理解並發控製 21
1.3.3 多版本控製 25
1.3.4 數據庫獨立性 31
1.3.5 怎麼能讓應用運行得更快45
1.3.6 DBA與開發人員的關係 48
1.4 小結 48
第2章 體係結構概述 50
2.1 定義數據庫和實例 51
2.2 連接Oracle 59
2.2.1 專用服務器 59
2.2.2 共享服務器 61
2.2.3 TCP/IP連接的基本原理 63
2.3 可插拔式數據庫 65
2.3.1 降低資源用量 66
2.3.2 降低維護開銷 66
2.4 可插拔式數據庫的不同之處 67
2.5 小結 67
第3章 文件 68
3.1 參數文件 69
3.1.1 什麼是參數 70
3.1.2 init.ora參數文件 73
3.1.3 服務器參數文件 75
3.2 跟蹤文件 82
3.2.1 計劃內的、由用戶請求所産生的跟蹤文件 83
3.2.2 針對內部錯誤生成的跟蹤文件 88
3.2.3 跟蹤文件小結 92
3.3 警告文件 92
3.4 數據文件 95
3.4.1 簡要迴顧文件係統機製 96
3.4.2 Oracle數據庫中的存儲層次體係 97
3.4.3 字典管理和本地管理的錶空間 100
3.5 臨時文件 102
3.6 控製文件 104
3.7 重做日誌文件 104
3.7.1 在綫重做日誌 105
3.7.2 歸檔重做日誌 107
3.8 密碼文件 108
3.9 修改跟蹤文件 111
3.10 閃迴日誌 112
3.10.1 閃迴數據庫 112
3.10.2 快速恢復區 113
3.11 DMP文件(EXP/IMP 文件) 114
3.12 數據泵文件 115
3.13 平麵文件 117
3.14 小結 118
第4章 內存結構 119
4.1 進程全局區和用戶全局區 120
4.1.1 手動PGA內存管理 121
4.1.2 自動PGA內存管理 127
4.1.3 如何選擇手動和自動內存管理 137
4.1.4 PGA和UGA小結 138
4.2 係統全局區 138
4.2.1 固定SGA 區 143
4.2.2 重做緩衝區 143
4.2.3 塊緩衝區緩存 145
4.2.4 共享池 151
4.2.5 大池 153
4.2.6 Java池 154
4.2.7 流池 155
4.2.8 SGA內存管理 155
4.3 小結 160
第5章 Oracle 進程 161
5.1 服務器進程 161
5.1.1 專用服務器連接 162
5.1.2 共享服務器連接 164
5.1.3 數據庫常駐連接池 165
5.1.4 連接與會話 165
5.1.5 專用服務器、共享服務器和數據庫常駐連接池 170
5.1.6 專用/共享服務器小結 173
5.2 後颱進程 174
5.2.1 特定任務後颱進程 175
5.2.2 工具後颱進程 185
5.3 從屬進程 188
5.3.1 I/O從屬進程 188
5.3.2 Pnnn:並行查詢執行服務器 189
5.4 小結 189
第6章 鎖和閂 190
6.1 什麼是鎖 190
6.2 鎖的問題 193
6.2.1 丟失更新 193
6.2.2 悲觀鎖 194
6.2.3 樂觀鎖 195
6.2.4 樂觀鎖還是悲觀鎖 201
6.2.5 阻塞 202
6.2.6 死鎖 205
6.2.7 鎖升級 209
6.3 鎖類型 209
6.3.1 DML鎖 210
6.3.2 DDL鎖 219
6.3.3 閂 223
6.3.4 互斥鎖 231
6.3.5 手動鎖定和用戶定義鎖 232
6.4 小結 233
第7章 並發與多版本控製 234
7.1 什麼是並發控製 234
7.2 事務隔離級彆 235
7.2.1 READ UNCOMMITTED 236
7.2.2 READ COMMITTED 238
7.2.3 REPEATABLE READ 239
7.2.4 SERIALIZABLE 241
7.2.5 READ ONLY 243
7.3 多版本讀一緻性的含義 244
7.3.1 數據倉庫中一種常見但有問題的方法 244
7.3.2 解釋熱錶上超齣期望的I/O 245
7.4 寫一緻性 247
7.4.1 一緻讀和當前讀 248
7.4.2 查看重啓動 250
7.4.3 為什麼重啓動對我們很重要 252
7.5 小結 253
第8章 事務 255
8.1 事務控製語句 255
8.2 原子性 257
8.2.1 語句級原子性 257
8.2.2 過程級原子性 259
8.2.3 事務級原子性 262
8.2.4 DDL與原子性 262
8.3 持久性 263
8.3.1 COMMIT的WRITE擴展 263
8.3.2 非分布式PL/SQL代碼塊中的COMMIT 264
8.4 完整性約束和事務 266
8.4.1 IMMEDIATE約束 266
8.4.2 DEFERRABLE約束和級聯更新 266
8.5 不好的事務習慣 270
8.5.1 在循環中提交 270
8.5.2 使用自動提交 276
8.6 分布式事務 277
8.7 自治事務 278
8.7.1 自治事務如何工作 279
8.7.2 何時使用自治事務 280
8.8 小結 283
第9章 redo與undo 284
9.1 什麼是redo 285
9.2 什麼是undo 286
9.3 redo和undo如何協作 289
9.4 提交和迴滾處理 293
9.4.1 COMMIT做什麼 293
9.4.2 ROLLBACK做什麼 299
9.5 分析redo 300
9.5.1 測量redo 301
9.5.2 能關掉重做日誌的生成嗎 302
9.5.3 為什麼我拿不到日誌空間 305
9.5.4 塊清除 307
9.5.5 日誌競爭 310
9.5.6 臨時錶和redo/undo 312
9.6 分析undo 317
9.6.1 什麼操作會生成最多和最少的undo 317
9.6.2 ORA-01555: snapshot too old錯誤 319
9.7 小結 328
第10章 數據庫錶 329
10.1 錶類型 329
10.2 術語 331
10.2.1 段 331
10.2.2 段空間管理 333
10.2.3 高水位綫 334
10.2.4 FREELIST 336
10.2.5 PCTFREE和PCTUSED 339
10.2.6 LOGGING和NOLOGGING 342
10.2.7 INITRANS和MAXTRANS 343
10.3 堆組織錶 343
10.4 索引組織錶 346
10.5 索引聚簇錶 359
10.6 散列聚簇錶 366
10.7 有序散列聚簇錶 375
10.8 嵌套錶 377
10.8.1 嵌套錶語法 378
10.8.2 嵌套錶存儲 384
10.8.3 嵌套錶小結 387
10.9 臨時錶 387
10.9.1 12c之前的統計信息 391
10.9.2 12c之後的統計信息 395
10.9.3 臨時錶小結 398
10.10 對象錶 399
10.11 小結 405
第11章 索引 406
11.1 Oracle索引概述 406
11.2 B*Tree索引 408
11.2.1 索引鍵壓縮 411
11.2.2 反嚮鍵索引 413
11.2.3 降序索引 418
11.2.4 什麼情況下應該使用B*Tree索引 420
11.2.5 B*Tree小結 430
11.3 位圖索引 430
11.3.1 什麼情況下應該使用位圖索引 431
11.3.2 位圖聯結索引 435
11.3.3 位圖索引小結 437
11.4 基於函數的索引 438
11.4.1 一個簡單的例子 438
11.4.2 隻對部分行建立索引 446
11.4.3 實現有選擇的唯一性 448
11.4.4 關於ORA-01743的警告 448
11.4.5 基於函數的索引小結 449
11.5 應用域索引 450
11.6 不可見的索引 451
11.7 同列上的多個索引 452
11.8 在擴展列上使用索引 453
11.8.1 使用虛擬列的方法 454
11.8.2 使用基於函數索引的方法 456
11.9 關於索引的常見問題和各種傳言 457
11.9.1 視圖能使用索引嗎 457
11.9.2 Null和索引能協作嗎 457
11.9.3 外鍵是否應該加索引 460
11.9.4 為什麼沒有使用我的索引 461
11.9.5 傳言:索引中從不重用空間 466
11.9.6 傳言:最有差彆的元素應該在最前麵 469
11.10 小結 472
第12章 數據類型 473
12.1 Oracle數據類型概述 473
12.2 字符和二進製串類型 475
12.2.1 NLS概述 476
12.2.2 字符串 479
12.3 二進製串:RAW類型 485
12.4 擴展的數據類型 487
12.5 數值類型 489
12.5.1 NUMBER類型的語法和用法 491
12.5.2 BINARY_FLOAT/BINARY_DOUBLE類型的語法和用法 494
12.5.3 非固有數值類型 495
12.5.4 性能考慮 495
12.6 LONG類型 497
12.6.1 LONG 和LONG RAW類型的限製 497
12.6.2 處理遺留的LONG類型 498
12.7 DATE、TIMESTAMP和INTERVAL類型 502
12.7.1 格式 503
12.7.2 DATE類型 504
12.7.3 TIMESTAMP類型 509
12.7.4 INTERVAL類型 515
12.8 LOB類型 518
12.8.1 內部LOB 518
12.8.2 BFILE 531
12.9 ROWID/UROWID類型 533
12.10 小結 533
第13章 分區 535
13.1 分區概述 535
13.1.1 提高可用性 536
13.1.2 減少管理負擔 538
13.1.3 增強語句性能 541
13.2 錶分區機製 543
13.2.1 區間分區 544
13.2.2 散列分區 546
13.2.3 列錶分區 550
13.2.4 間隔分區 552
13.2.5 引用分區 557
13.2.6 間隔引用分區 561
13.2.7 虛擬列分區 563
13.2.8 組閤分區 564
13.2.9 行移動 566
13.2.10 錶分區機製小結 568
13.3 索引分區 569
13.3.1 本地索引與全局索引 570
13.3.2 本地索引 570
13.3.3 全局索引 575
13.4 再論分區和性能 590
13.5 一些簡化維護的特性 595
13.5.1 多分區管理操作 595
13.5.2 級聯截斷 597
13.5.3 級聯交換 599
13.6 審計和段空間壓縮 600
13.7 小結 601
第14章 並行執行 603
14.1 何時使用並行執行 604
14.2 Oracle Exadata 606
14.3 並行查詢 606
14.4 並行DML 612
14.5 並行DDL 615
14.5.1 並行DDL和使用外部錶的數據加載 616
14.5.2 並行DDL和擴展截斷 617
14.6 過程並行化 625
14.6.1 並行管道函數 626
14.6.2 DIY並行化 629
14.6.3 老式DIY並行化 632
14.7 小結 635
第15章 數據加載和卸載 637
15.1 外部錶 637
15.1.1 建立外部錶 638
15.1.2 處理錯誤 645
15.1.3 使用外部錶加載不同的文件 648
15.1.4 多用戶問題 649
15.1.5 預處理 650
15.1.6 外部錶總結 658
15.2 數據泵卸載 659
15.3 SQLLDR 660
15.3.1 用SQLLDR加載數據的常見問題 664
15.3.2 SQLLDR警告 686
15.3.3 SQLLDR小結 686
15.4 平麵文件卸載 687
15.5 小結 694
前言/序言
Oracle編程藝術 深入理解數據庫體係結構(第3版) 下載 mobi epub pdf txt 電子書 格式