內容簡介
《Oracle Database 9i/10g/11g編程藝術:深入資料庫體系結構(第2版)》是一本關於Oracle Database 9i、10g和11g資料庫體系結構的權威圖書,涵蓋了所有重要的Oracle體系結構特性,包括檔案、記憶體結構和進程,鎖和閂,事務、並發和多版本,表和索引,數據類型,分區和並行,以及數據加密等,並利用具體的例子來全面介紹每個特性,不僅討論了各個特性是什麼,還說明了它是如何工作的,如何使用這個特性來開發軟體,以及有關的常見陷阱。
《Oracle Database 9i/10g/11g編程藝術:深入資料庫體系結構(第2版)》面向所有Oracle資料庫套用開發人員和DBA。
編輯推薦
《Oracle Database 9i/10g/11g編程藝術:深入資料庫體系結構(第2版)》是公認的Oracle資料庫權威指南,凝聚了世界頂尖的Oracle專家Thomas Kyte數十年的寶貴經驗和真知灼見。書中深入分析了Oracle資料庫體系結構。包括檔案、記憶體結構以及構成Oracle資料庫和實例的底層進程,利用具體示例討論了一些重要的資料庫主題。如鎖定、並發控制、事務等。同時分析了資料庫中的物理結構,如表、索引和數據類型,並介紹採用哪些技術能最優地使用這些物理結構。《Oracle Database 9i/10g/11g編程藝術:深入資料庫體系結構(第2版)》在上一版的基礎上做了大量增補,以涵蓋11g最受關注的多項特性,尤其針對數據加密進行了詳細的闡釋。
無論你是開發人員還是DBA,要創建和管理穩定、高質量的Oracle系統,歸根結底都需要理解Oracle資料庫的體系結構。
久負盛名的Oracle經典
世界頂級專家Thomas Kyte力作
Ask Tom!解決你所有的Oracle疑難問題
媒體推薦
“本書能夠幫助你發揮OracIe技術的最大能量……毋庸置疑,這是最重要的Oracle圖書之一,絕對值得擁有。”
——Ken Jacobs.OracIe公司產品策略部(伺服器技術)副總裁。公認的“DBA博士”
“真是一本絕妙的書,包含大量關於Oracle技術的真知灼見。”
——Sean Hull。Heavyweight Internet集團
作者簡介
作者:(美國)凱特(Thomas Kyte) 譯者:蘇金國 王小振 等
Thomas Kyte,Oracle公司核心技術集團副總裁。從5.1.1 c版本開始使用Oracle,自7.0.9 版本發布就一直任職於Oracle公司,幫助Oracle資料庫用戶設計和構建系統,或者對系統進行重構和調優。此前曾是一位系統集成師,主要為美國軍方和政府部門的客戶構建大規模的異構資料庫和套用。長期主持Oracle Magazine“Ask Tom”專欄,熱心回答困擾全世界OracIe開發人員和DBA的各種問題。除本書外,還著有廣受好評的《Oracle專家高級編程》和《Oracle高效設計》。
目錄
第1章 開發成功的OraGIe套用
1.1 我的方法
1.2 黑盒方法
1.3 開發資料庫套用的正確(和不正確)方法
1.3.1 了解Oracle體系結構
1.3.2 理解並發控制
1.3.3 多版本控制
1.3.4 資料庫獨立性
1.3.5 怎么能讓套用運行得更快
1.3.6 DBA與開發人員的關係
1.4 小結
第2章 體系結構概述
2.1 定義資料庫和實例
2.2 sGA和後台進程
2.3 連線Oracle
2.3.1 專用伺服器
2.3.2 共享伺服器
2.3.3 TCP/IP連線的基本原理
2.4 小結
第3章 檔案
3.1 參數檔案
3.1.1 什麼是參數
3.1.2 遺留的inlt.0ra參數檔案
3.1.3 伺服器參數檔案
3.1.4 參數檔案小結
3.2跟蹤檔案
3.2.1 請求的跟蹤檔案
3.2.2 針對內部錯誤生成的跟蹤檔案
3.2.3 跟蹤檔案小結
3.3 警告檔案
3.4 數據檔案
3.4.1 簡要回顧檔案系統機制
3.4.2 Oracle資料庫中的存儲層次體系
3.4.3 字典管理和本地管理的表空間
3.5 臨時檔案
3.6 控制檔案
3.7 重做日誌檔案
3.7.1 線上重做日誌
3.7.2 歸檔重做日誌
3.8 密碼檔案
3.9 修改跟蹤檔案
3.10 閃回日誌
3.10.1 閃回資料庫
3.10.2 閃回恢復區
3.11 DMP檔案(EXP/IMP檔案)
3.12 數據泵檔案
3.13平面檔案
3.14 小結
第4章 記憶體結構
4.1 進程全局區和用戶全局區
4.1.1 手動PGA記憶體管理
4.1.2 自動PGA記憶體管理
4.1.3 手動和自動記憶體管理的選擇
4.1.4 PGA和U(3}A小結
4.2 系統全局區
4.2.1 固定SGA
4.2.2 重做緩衝區
4.2.3 塊緩衝區快取
4.2.4共享池
4.2.5 大池
4.2.6 Java池
4.2.7 流池
4.2.8 自動SGA記憶體管理
4.2.9 自動記憶體管理
4.3 小結
第5章 OracIe進程
5.1 伺服器進程
5.1.1 專用伺服器連線
5.1.2 共享伺服器連線
5.1.3 資料庫常駐連線池
5.1.4 連線與會話
5.1.5 專用伺服器與共享伺服器
5.1.6專用/共享伺服器小結
5.2後台進程
5.2.1 中心後台進程
5.2.2 工具後台進程
5.3 從屬進程
5.3.1 I/O從屬進程
5.3.2 Pnnn:並行查詢執行伺服器
5.4 小結
第6章 鎖和閂
6.1 什麼是鎖
6.2 鎖定問題
6.2.1 丟失更新
6.2.2悲觀鎖定
6.2.3樂觀鎖定
6.2.4 樂觀鎖定還是悲觀鎖定
6.2.5 阻塞
6.2.6 死鎖
6.2.7 鎖升級
6.3 鎖類型
6.3.1 DML鎖
6.3.2 DDL鎖
6.3.3 閂
6.3.4 手動鎖定和用戶定義鎖
6.4 小結
第7章 並發與多版本控制
7.1 什麼是並發控制
7.2事務隔離級別
7.2.1 READUNCOMMITTED
7.2.2 READCOMMITTED
7.2.3 REPEATABLEREAD
7.2.4Serializable
7.2.5 READ0NLY
7.3 多版本控制讀一致性的含義
7.3.1 一種會失敗的常用數據倉庫技術
7.3.2 解釋熱表上超出期望的I/O
7.4 寫一致性
7.4.1 一致讀和當前讀
7.4.2 查看重啟動
7.4.3 為什麼重啟動對我們很重要
7.5 小結
第8章 事務
8.1 事務控制語句
8.2 原子性
8.2.1 語句級原子性
8.2.2 過程級原子性
8.2.3 事務級原子性
8.2.4 DDL與原子性
8.3 持久性
8.3.1 COHHIT的WRITE擴展
8.3.2 非分散式PL/SQL代碼塊中的COMMIT
8.4 完整性約束和事務
8.4.1 EMMEDIATE約束
8.4.2 DEFERRABLE約束和級聯更新
8.5 不好的事務習慣
8.5.1 在循環中提交
8.5.2 使用自動提交
8.6分散式事務
8.7 自治事務
8.7.1 自治事務如何工作
8.7.2 何時使用自治事務
8.8 小結
第9章 redo與und0
9.1 什麼是red0
9.2 什麼是und0-
9.3 red0和und0如何協作
9.4 提交和回滾處理
9.4.1 COMMIT做什麼:
9.4.2 ROLLBACK做什麼
9.5 分析red0
9.5.1 測量redo
9.5.2 能關掉重做日誌生成程式嗎
9.5.3 為什麼不能分配一個新日誌
9.5.4 塊清除
9.5.5 日誌競爭
9.5.6 臨時表和red0/undo
9.6 分析undo
9.6.1 什麼操作會生成最多和最少的undo9.6.2ORA.01555:snapshottoo0ld錯誤
9.7 小結
第10章 資料庫表
10.1 表類型
10.2 術語
10.2.1 段
10.2.2 段空間管理
10.2.3 高水位線
10.2.4 FREELIST
10.2.5 PCTFREE和PCTUSED
10.2.6 LOGGING和NOLOGGING
10.2.7 INITRANS和HAXTRANS
10.3 堆組織表
10.4 索引組織表
10.5索引聚簇表
10.6 散列聚簇表
10.7 有序散列聚簇表
10.8 嵌套表
10.8.1 嵌套表語法
10.8.2 嵌套表存儲
10.8.3 嵌套表小結
10.9 臨時表
10.10 對象表
10.11 小結
第11章 索引
11.1Oracle索引概述
11.2B 樹索引
11.2.1 索引鍵壓縮
11.2.2反向鍵索引
11.2.3 降序索引
11.2.4 什麼情況下應該使用B樹索引
11.2.5 B樹小結
11.3點陣圖索引
11.3.1 什麼情況下應該使用住圖索引
11.3.2 點陣圖聯結索引
11.3.3 點陣圖索引小結
11.4 基於函式的索引
11.4.1 重要的實現細節
11.4.2 一個簡單的基於函式的索引例子
11.4.3 只對部分行建立索引
11.4.4 實現有選擇的唯一性
11.4.5 關於0RA-01743的警告
11.4.6 基於函式的索引小結
11.5 套用域索引
11.6 關於索引的常見問題和神話
11.6.1 視圖能使用索引嗎
11.6.2 Null和索引能協作嗎
11.6.3 外鍵是否應該加索引
11.6.4 為什麼沒有使用我的索引
11.6.5 神話:索引中從不重用空間
11.6.6 神話:最有差別的元素應該在最前面
11.7 小結
第12章 數據類型
12.1 0racle數據類型概述
12.2 字元和二進制串類型
12.2.1 NLS概述
12.2.2 字元串
12.3 二進制串:RAW類型
12.4 數值類型
12.4.1 NUHBER類型的語法和用法
12.4.2 BINARYFLOAT/BINARYDOUBLE類型的語法和用法
12.4.3 非固有數值類型
12.4.4 性能考慮
12.5 LONG類型
12.5 1LONG和LONGRAW類型的限制
12.5.2 處理遺留的LONG類型
12.6 DATE、TIMESTAHP和INTERVAL類型
12.6.1 格式
12.6.2 DATE類型
12.6.3 TIHESTAHP類型
12.6.4 INTERVAL類型
12.7 LOB類型
12.7.1 內部LOB
12.7.2 BFILE
12.8 ROWID/UROWID類型
12.9 小結
第13章 分區
13.1 分區概述
13.1.1 提高可用性
13.1.2 減少管理負擔
13.1.3 改善語句性能
13.2 表分區機制
13.2.1 區間分區
13.2.2 散列分區
13.2.3 列表分區
13.2.4 間隔分區
13.2.5 引用分區
13.2.6 組合分區
13.2.7 行移動
13.2.8 表分區機制小結
13.3 索引分區
13.3.1 局部索引與全局索引
13.3.2 局部索引
13.3 .3 全局索引
13.4 再論分區和性能
13.5 審計和段空間壓縮
13.6 小結:
第14章 並行執行
14.1 何時使用並行執行
14.2 OracleExadata
14.3 並行查詢
14.4 並行DML
14.5 並行DDI
14.5.1 並行DDL和使用外部表的
數據載入
14.5.2 並行DDL和區段截斷
14.6 並行恢復
14.7 過程並行化
14.7.1 並行管道函式
14.7.2 DIY並行化
14.7.3 老式DIY並行化
14.8 小結
第15章 數據載入和卸載
15.1 SQLLDR
15.1.1 用SQLLDR載入數據的常見問題
15.1.2 SQLLDR警告
15.1.3 SQILLDR小結
15.2 外部表
15.2.1 建立外部表
15.2.2 處理錯誤
15.2.3 使用外部表載入不同的檔案
15.2.4 多用戶問題
15.2.5 外部表小結
15.3 平面檔案卸載
15.4 數據泵卸載
15.5 小結
第16章 數據加密
16.1 加密類型
16.1.1 動態數據
16.1.2 靜態數據
16.1.3 手動套用加密
16.1.4 Oracle錢央
16.1.5 透明列級加密
16.1.6 透明表空間加密
16.2 加密不是訪問控制
16.3 實現手動套用加密
16.3.1 避免使用手動方法的原因
16.3.2 手動方法的性能影響
16.3.3 何時使用手動方法
16.4 實現列級加密
16.4.1 如何使用列級加密
16.4.2 列級加密的數據存儲
16.4.3 測量列級加密的性能影響
16.4.4 影響大小
16.4.5 列級加密的限制
16.5 實現表空間加密
16.5.1 如何使用表空間加密
16.5.2 表空間加密的數據存儲
16.5.3 測量表空間加密的性能影響
16.6 決定採用哪種加密技術
16.7 小結
索引