《Oracle PL/SQL實戰》
基本資料
作者: (英)比林頓(Billington,A·)等著,盧濤 [作譯者介紹]
出版社:人民郵電出版社
ISBN:9787115294852
上架時間:2012-10-27
出版日期:2012 年11月
開本:16開
頁碼:166
版次:1-1
所屬分類: 電腦 > 資料庫 > Oracle
更多關於 》》》《Oracle PL/SQL實戰》
內容簡介
書籍
電腦書籍
本書由15位知名技術專家聯手打造,每位作者分別用一章的篇幅介紹他們最擅長的pl/sql相關主題,涵蓋了pl/sql開發的方方面面。本書作者要麼是oracle社區中堅分子,要麼是大名鼎鼎的oaktable成員,而且經常活躍在oracle技術培訓第一線,對pl/sql均有著深入透徹的理解,對解釋複雜問題有著簡單獨到的方法。一冊在手,眾多pl/sql牛人的真知灼見盡收眼底,你還等什嗎?
本書著重介紹了pl/sql最新、最實用的特性,從什麼該做和什麼不該做、怎麼做對,以及怎麼做更有效率、效果更好等三個部分全面闡釋了pl/sql相關的各個主題。而且,每一章都配有非常貼切的範例程式碼、跟蹤圖以及輸出結果,輔以深入淺出的講解,令人在恍然大悟之後不禁拍案叫絕。各章內容均涵蓋了pl/sql實際開發中的最佳實務,反映了作者多年積累的經驗和教訓,其價值非同一般。
本書適合具有一定pl/sql經驗的讀者學習參考。
目錄
第1章 避免誤用 1
1.1 逐行處理 1
1.2 嵌套的逐行處理 3
1.3 尋找式查詢 5
1.4 對dual的過度訪問 8
1.4.1 日期的算術運算 8
1.4.2 訪問序列 9
1.4.3 填充主—從行 9
1.5 過多的函數調用 10
1.5.1 不必要的函數調用 10
1.5.2 代價高昂的函數調用 12
1.6 資料庫連結調用 14
1.7 過度使用觸發器 15
1.8 過度提交 15
1.9 過度解析 16
1.10 小結 16
第2章 動態sql:處理未知 18
2.1 動態sql的三種方式 19
2.1.1 本地動態sql 19
2.1.2 動態資料指標 21
2.1.3 dbms_sql 25
2.2 動態思考的範例 26
2.3 安全問題 30
2.4 效能和資源使用率 33
2.4.1 反模式 34
2.4.2 比較動態sql的實現 35
2.5 對象的依賴關係 37
2.5.1 負面影響 37
2.5.2 正面影響 37
2.6 小結 38
第3章 pl/sql和平行處理 39
3.1 為什麼需要平行處理 39
3.2 影響平行處理的定律 40
3.3 大資料的崛起 40
3.4 並行與分散式處理 41
3.5 並行硬體體繫結構 41
3.6 確定目標 42
3.6.1 加速 42
3.6.2 按比例擴充 43
3.6.3 並行度 43
3.7 用於平行處理的候選工作負載 43
3.7.1 並行和oltp 43
3.7.2 並行和非oltp工作負載 44
3.8 mapreduce編程模型 44
3.9 在使用pl/sql之前 45
3.10 可用於並行活動的進程 45
3.11 使用mapreduce的並存執行伺服器 46
3.11.1 管道表函數 46
3.11.2 指導 60
3.11.3 並行管道表函數小結 61
3.12 小結 61
第4章 警告和條件編譯 62
4.1 pl/sql 警告 62
4.1.1 基礎 62
4.1.2 使用警告 63
4.1.3 升級警告為錯誤 67
4.1.4 忽略警告 68
4.1.5 編譯和警告 69
4.1.6 關於警告的結束語 72
4.2 條件編譯 72
4.2.1 基礎 72
4.2.2 正在運行代碼的哪部分 75
4.2.3 預先處理代碼的好處 76
4.2.4 有效性驗證 78
4.2.5 控制編譯 80
4.2.6 查詢變數 81
4.2.7 關於條件編譯的結束語 82
4.3 小結 84
第5章 pl/sql單元測試 85
5.1 為什麼要測試代碼 85
5.2 什麼是單元測試 86
5.2.1 調試還是測試 86
5.2.2 建立測試的時機 86
5.3 單元測試構建工具 87
5.3.1 utplsql:使用命令列代碼 87
5.3.2 quest code tester for oracle 87
5.3.3 oracle sql developer 88
5.4 準備和維護單元測試環境 88
5.4.1 建立單元測試資料檔案庫 89
5.4.2 維護單元測試資料檔案庫 90
5.4.3 匯入測試 91
5.5 構建單元測試 91
5.5.1 使用單元測試嚮導 91
5.5.2 建立第一個測試實施 92
5.5.3 添加啟動和拆除進程 93
5.5.4 收集程式碼涵蓋範圍統計資訊 93
5.5.5 指定參數 93
5.5.6 添加進程驗證 94
5.5.7 儲存測試 95
5.5.8 調試和運行測試 95
5.6 擴大測試的範圍 95
5.6.1 建立尋找值 96
5.6.2 植入測試實施 97
5.6.3 建立動態查詢 98
5.7 支援單元測試功能 99
5.7.1 運行報告 99
5.7.2 建立組件庫 100
5.7.3 匯出、匯入和同步測試 103
5.7.4 構建套件 105
5.8 從命令列運行測試 105
5.9 小結 106
第6章 批量sql操作 107
6.1 五金商店 107
6.2 設定本章的例子 108
6.3 在pl/sql中執行大量操作 108
6.3.1 批量擷取入門 110
6.3.2 三種集合風格的資料類型 112
6.3.3 為什麼要自找麻煩 114
6.3.4 監控批量收集的開銷 116
6.3.5 重構代碼以使用批量收集 119
6.4 大量繫結 127
6.4.1 大量繫結入門 127
6.4.2 度量大量繫結效能 128
6.4.3 監視記憶體的使用 131
6.4.4 11g中的改進 133
6.5 大量繫結的錯誤處理 134
6.5.1 save exceptions和分批操作 137
6.5.2 log errors子句 138
6.5.3 健壯的大量繫結 139
6.6 大規模集合的正當理由 143
6.7 真正的好處:用戶端批量處理 145
6.8 小結 149
第7章 透識你的代碼 151
7.1 本章內容取捨 152
7.2 自動程式碼分析 153
7.2.1 靜態分析 154
7.2.2 動態分析 154
7.3 執行分析的時機 154
7.4 執行靜態分析 156
7.4.1 資料字典 156
7.4.2 pl/scope 163
7.5 執行動態分析 175
7.5.1 dbms_profiler和dbms_trace 175
7.5.2 dbms_hprof 184
7.6 小結 189
第8章 合約導向編程 190
8.1 契約式設計 190
8.1.1 軟體合約 190
8.1.2 基本合約要素 191
8.1.3 斷言 192
8.1.4 參考文獻 192
8.2 實現pl/sql合約 192
8.2.1 基本的assert程式 192
8.2.2 標準的包本地斷言 194
8.2.3 使用assert執行合約 196
8.2.4 其他改進 198
8.2.5 合約導向函數原型 199
8.3 樣本:測試奇數和偶數 200
8.4 有用的合約模式 202
8.4.1 用not null輸入且輸出not null 202
8.4.2 函數返回not null 203
8.4.3 布爾型函數返回not null 203
8.4.4 檢查函數:返回true或assertfail 204
8.5 無錯代碼的原則 205
8.5.1 嚴格地斷言先決條件 205
8.5.2 一絲不苟地模組化 206
8.5.3 採用基於函數的介面 206
8.5.4 在assertfail處崩潰 207
8.5.5 對後置條件進行迴歸測試 207
8.5.6 避免在正確性和效能之間取捨 207
8.5.7 採用oracle 11g最佳化編譯 208
8.6 小結 209
第9章 從sql調用pl/sql 210
9.1 在sql中使用pl/sql函數的開銷 210
9.1.1 環境切換 211
9.1.2 執行 216
9.1.3 欠理想的資料訪問 218
9.1.4 最佳化器的痛點 222
9.1.5 讀一致性陷阱 226
9.1.6 其他問題 228
9.2 降低pl/sql函數的開銷 228
9.2.1 大局觀 229
9.2.2 使用sql的替代品 230
9.2.3 減少執行 236
9.2.4 協助cbo 244
9.2.5 調優pl/sql 255
9.3 小結 257
第10章 選擇正確的遊標 258
10.1 顯式遊標 258
10.1.1 解剖顯式遊標 260
10.1.2 顯式遊標和批量處理 261
10.1.3 ref遊標簡介 262
10.2 隱式遊標 263
10.2.1 解剖隱式遊標 264
10.2.2 隱式遊標和額外擷取的理論 265
10.3 靜態ref遊標 267
10.3.1 詳細的遊標變數限制清單 269
10.3.2 用戶端和ref遊標 270
10.3.3 有關解析的話題 271
10.4 動態ref遊標 273
10.4.1 例子和最佳用法 273
10.4.2 sql注入的威脅 275
10.4.3 描述ref遊標中的列 276
10.5 小結 277
第11章 大規模pl/sql編程 279
11.1 將資料庫作為基於pl/sql的應用伺服器 279
11.1.1 案例研究:avaloq銀行系統 279
11.1.2 在資料庫中使用pl/sql實現商務邏輯的優勢 281
11.1.3 用資料庫作為基於pl/sql的應用程式伺服器的限制 283
11.1.4 軟因素 284
11.2 大規模編程的要求 284
11.3 通過規範實現一致性 285
11.3.1 縮寫詞 286
11.3.2 pl/sql標識符的首碼和尾碼 289
11.4 代碼和資料的模組化 291
11.4.1 包和相關的表作為模組 293
11.4.2 含有多個包或子模組的模組 297
11.4.3 模式作為模組 299
11.4.4 在模式內部模組化 303
11.4.5 用模式模組化與在模式內模組化的比較 306
11.5 使用pl/sql物件導向編程 306
11.5.1 使用使用者定義型別的物件導向編程 307
11.5.2 使用pl/sql記錄物件導向編程 310
11.5.3 評估 316
11.6 記憶體管理 317
11.6.1 測量記憶體使用量 317
11.6.2 集合 322
11.7 小結 325
第12章 漸進式資料建模 326
12.1 從二十年的系統開發中總結的經驗 327
12.2 資料庫和敏捷開發 328
12.3 漸進式資料建模 329
12.4 重構資料庫 331
12.5 通過pl/sql建立訪問層 335
12.6 敏捷宣言 347
12.7 用pl/sql進行漸進式資料建模 349
12.7.1 定義介面 349
12.7.2 思考可擴充性 349
12.7.3 測試驅動開發 350
12.7.4 明智地使用模式和使用者 350
12.8 小結 351
第13章 效能剖析 352
13.1 何謂效能 353
13.1.1 功能需求 353
13.1.2 回應時間 353
13.1.3 輸送量 354
13.1.4 資源使用率 354
13.1.5 效能是功能的一種 355
13.2 什麼是剖析 356
13.2.1 順序圖 356
13.2.2 概要檔案之神奇 357
13.2.3 效能剖析的好處 357
13.3 效能測量 358
13.3.1 這個程式為什麼慢 358
13.3.2 測量嵌入 360
13.3.3 識別 360
13.3.4 條件編譯 364
13.3.5 內建的剖析器 365
13.3.6 擴充的sql跟蹤資料(事件10046) 365
13.3.7 針對oracle的測量工具庫(ilo) 366
13.4 問題診斷 368
13.4.1 r方法 369
13.4.2 ilo樣本 371
13.4.3 剖析樣本 373
13.5 小結 376
第14章 編碼規範和錯誤處理 378
14.1 為什麼要制訂編碼規範 378
14.2 格式化 379
14.2.1 大小寫 379
14.2.2 注釋 380
14.2.3 比較 380
14.2.4 縮排 380
14.3 動態代碼 383
14.4 包 384
14.5 預存程序 385
14.5.1 命名 385
14.5.2 參數 386
14.5.3 調用 386
14.5.4 局部變數 386
14.5.5 常量 386
14.5.6 類型 387
14.5.7 全域變數 387
14.5.8 本機存放區過程和函數 387
14.5.9 預存程序中繼資料 388
14.6 函數 388
14.7 錯誤處理 389
14.7.1 錯誤捕獲 389
14.7.2 錯誤報表 390
14.7.3 錯誤恢複 391
14.7.4 先測試再顯示 392
14.8 小結 392
第15章 依賴關係和失效 395
15.1 依賴鏈 395
15.2 縮短依賴鏈 401
15.3 資料類型引用 406
15.4 用於表修改的視圖 407
15.5 把組件添加到包 410
15.6 依賴鏈中的同義字 413
15.7 資源鎖定 414
15.8 用觸發器強制執行依賴 415
15.9 建立最初禁用的觸發器 418
15.10 小結 420
本圖書資訊來源:中國互動出版網