精通 Oracle SQL, 2/e (Pro Oracle SQL, 2/e)
內容描述
《精通Oracle SQL(第2版)》語言精煉、風趣,所涵蓋的內容涉及SQL核心、SQL執行、分析函數、聯結、測試與質量保證等,並提供大量實用性建議,且總結出方方面面的“技巧”,幫助讀者在閱讀過程中快速消化所看內容。新版針對Oracle 12c進行了大幅修訂,以反映技術的最新發展動態。
《精通Oracle SQL(第2版)》旨在為Oracle數據庫開發人員、DBA和架構師提供參考。
目錄大綱
第1章SQL核心
1.1SQL語言
l,2數據庫的接口
1.3SQLPlus回顧
1.3.1連接到數據庫
1.3.2配置SQLPlus環境
1.3.3執行命令
1.45個核心的SQL語句
1.5SELECT語句
1.5.1FROM子句
1.5.2WHERE子句
1.5.3GROUPBY子句
1.5.4HAVING子句
1.5.5SELECT列表
1.5.6ORDERBY子句
1.6INSERT語句
1.6.1單表插入
1.6.2多袁插入
1.7UPDATE語句
1.8DELETE語句
1.9MERGE語句
1.10小結
第2章SQL執行
2.10racle架構基礎
2.2SGA共享池
2.3庫高速緩存
2.4完全相同的語句
2.5SGA緩衝區緩存
2.6查詢轉換
2.6.1查詢塊
2.6.2視圖合併
2.6.3子查詢解嵌套
2.6.4聯結消除
2.6.5排序消除
2.6.6謂詞推進
2.6.7使用物化視圖進行查詢重寫
2.7確定執行計劃
2.8執行計劃並取得數據行
2.9SQL執行——總覽
2.10小結
第3章訪問和聯結方法
3.1全掃描訪問方法
3.1.1如何選擇全掃描操作
3.1.2全掃描與捨棄
3.1.3全掃描與多塊讀取
3.1.4全掃描與高水位線
3.2索引掃描訪問方法
3.2.1索引結構
3.2.2索引掃描類型
3.2.3索引唯一掃描
- 2.4索引範圍掃描
3.2.5索引全掃描
3.2.6索引跳躍掃描
3.2.7索引快速全掃描
3.3聯結方法
3.3.1嵌套循環聯結
3.3.2排序一合併聯結
3.3.3散列聯結
3.3.4笛卡兒聯結
3.3.5外聯結
3.4小結
第4章SQL是關於集合的
4.1以面向集合的思維方式來思考
4.1.1從面向過程轉變為基於集合的思維方式
4.1.2面向過程與基於集合的思維方式:例子
4.2集合運算
4.2.1UNION和UNIONALL
4.2.2MINUS
4.2.3INTERSECT
4.3集合與空值
4.3.1空值與非直觀結果
4.3.2空值與集合運算
4.3.3空值與GROUPBY和ORDERBY
4.3. 4空值與聚合函數
4.4小結
第5章提出問題
5.1問出好的問題
5.2提問的目的
5.3問題的種類
5.4問題的問題
5.5數據的問題
5.6建立邏輯表達式
5.7小結
第6章SQL執行計劃
6.1解釋計劃
6.1.1使用解釋計劃
6.1.2PLAN_TABLE
6.1.3分解計劃
6.1.4導致解釋計劃未達目的的原因
6.1.5閱讀計劃
6.1.6訪問和篩選謂語
6.1.7使計劃便於閱讀
6.2執行計劃
6.2. 1查看最近生成的SQL語 句
6.2.2查看相關執行計劃
6.2.3收集執行計劃統計信息
6.2.4標識SQL語句以便以後取回計劃
6.2.5深入理解DBMSXPLAN
6.2.6使用SQL監控報告
6.2.7使用計劃信息解決問題
6.3小結
第7章高級分組
7.1基本的GROUPBY用法
7.2HAVING子句
7.3GROUPBY的“新”功能
7.4GROUPBY的CUBE擴展
7.5CUBE的實際應用
7.6用GROUPING()函數排除空值
7.7用GROUPING()擴展報告
7.8用GROUPING_ID ()擴展報告
7.9GROUPINGSETS與ROLLUP()
7.10GROUPBY局限性
7.11小結
第8章分析函數
8.1概覽
8.2示例數據
8.3分析函數剖析
8.4函數列表
8.5聚合函數
8.5.1跨越整個分區的聚合函數
8.5.2細粒度窗口聲明
8.5.3默認窗口聲明
8.6lead和lag
8.6.1語法和排序
8.6.2例1:從前一行中返回一個值
8.6.3理解數據行的位移
8.6.4例2:從下一行中返回一個值
8.7first_value和last_value
8.7.1例子:使用first_value計算最大值
8.7.2例子:使用last_value計算最小值
8.8其他分析函數
8.8.1nth_ValUe
8.8.2rank
8.8.3dense_rank
8.8.4row—number
8.8.5ratio_to_repOrt
8.8.6percent_rank
8.8.7percentile_cont
8.8.8percentile_disc
8.8.9NTILE
8.8.10stddev
8.8.11listagg
8.9性能調優
8.9.1執行計劃
8.9.2謂詞
8.9.3索引
8.10高級話題
8.10 .1動態SQL
8.10.2嵌套分析函數
8.10.3並行
8.10.4PGA大小
8.11組織行為
8.12小結
第9章MODEL子句
9.1電子表格
9.2使用MODEL子句實現跨行引用
9.2.1示例數據
9.2.2剖析MODEL子句
9.2.3規則
9.3位置和符號引用
9.3.1位置標記
9.3.2符號標記
9.3.3FOR循環
9.4返回更新後的行
9.5求解順序
9.5.1行求解順序
9.5.2規則求解順序
9.6聚合
9.7迭代
9.7.1示例
9.7.2PRESENTV與空值
9.8查找表
9.9空值
9.10使用MODEL子句進行性能調優
9.10.1執行計劃
9.10.2謂詞推進
9.10.3物化視圖
9.10.4並行
9.10.5MODEL子句執行中的分區
9.10.6索引
9.11子查詢因子化
9.12小結
第10章子查詢因子化
10.1標準用法
10.2用WITH定義PL/SQL函數
10.3SQL優化
10.3.1測試執行計劃
10.3.2測試查詢改變的影響
10.3 .3 找其他優化機會
10.3.4將子查詢因子化應用到
PL/SQL中
10.4遞歸子查詢
10.4.1CONNECTBY示例
10.4.2RSF示例
10.4.3RSF的限制條件
10.4.4與CONNECTBY的不同點
10.5複製CONNECTBY的功能
10.5 .1LEVEL偽列
10.5.2SYS_CONNECT_BY_PATH函數
10.5.3CONNECT_BY_ROOT運算符
10.5.4CONNECT_BY_ISCYCLE偽列和
NOCYCLE參數
10.5.5CONNECTBYISLEAF偽列
10.6小結
第11章半聯結和反聯結
11.1半聯結
11.2半聯結執行計劃
11.3控制半聯結執行計劃
11.3.1使用提示控制半聯結執行計劃
11.3.2在實例級控制半聯結執行計劃
11.4半聯結限制條件
11.5半聯結必要條件
11.6反聯結
11.7反聯結執行計劃
11.8控制反聯結執行計劃
11.8.1使用提示控制反聯結執行計劃
11.8.2在實例級控制反聯結執行計劃
11.9反聯結限制條件
11.10反聯結必要條件
11.11小結
第12章索引
12.1理解索引
12.1.1什麼時候使用索引
12.1.2列的選擇
12.1. 3空值問題
12.2索引結構類型
12.2.1B—樹索引
12.2.2位圖索引
12.2.3索引組 表
12.3分區索引
12.3.1局部索引
12.3.2全局索引
12.3.3散列分區與範圍分區
12.4與應用特點相匹配的解決方案
12.4.1壓縮索引
12.4.2基於函數的索引
12.4.3反轉鍵索引
12.4.4降序索引
12.5管理問題的解決方案
12.5.1不可見索引
12.5.2虛擬索引
12.5.3位圖聯結索引
12.6小結
第13章SELECT以外的內容
13.1INSERT
13.1.1直接路徑插入
13.1.2多表插入
13.1.3條件插入
13.1.4DML錯誤日誌
13.2UPDATE
13.2.1CTAS與UPDATE的差別
13.2.2INSERTAPPEND與UPDATE的差別
13.3DELETE
13.4HERGE
13.4.1語法和用法
13.4.2性能比較
13.5小結
第14章事務處理
14.1什麼是事務
14.2事務的ACID屬性
14.3事務隔離級別
14.4多版本讀一致性
14.5事務控制語句
14.5.1Commit(提交)
14.5.2Savepoint(保存點)
14.5.3Rollback(回滾)
14.5.4SetTransaction(設置事務)
14.5.5SetConstraints(設置約束)
14.6將運算分組為事務
14.7訂單錄入模式
14.8活動事務
14.9使用保存點
14.10序列化事務
14.11隔離事 務
14.12自治事務
14.13小結
第15章測試與質量保證
15.1測試用例
15.2測試方法
15.2.1單元測試
15.2.2回歸測試
15.2.3模式修改
15.2.4重複單元測試
15.3執行計劃比較
15.4性能測量
15.4.1在代碼中加入性能測量
15.4.2性能測試
15.5破壞性測試
15.6使用性能測量進行系統檢修
15.7小結
第16章計劃穩定性
16.1計劃不穩定性:理解這個問題
16.1.1統計信息的變化
16.1.2運行環境的改變
16.1.3SQL語句的改變
16.1.4綁定變量窺視
16.1.5自適應游標共享
16.2統計信息反饋
16.3識別執行計劃的不穩定性
16.3.1抓取當前運行查詢的數據
16.3.2查看語句的性能歷史
16.3.3按照執行計劃聚合統計信息
16.3.4尋找執行計劃的統計方差
16.3.5在一個時間點附近檢查偏差
16.4小結
第17章計劃控制
17.1執劃控制:解決問題
17.1.1調整查詢結構
17.1.2適當使用常量
17.1.3給優化器一些提示
17.2執行計劃控制:不能直接訪問代碼
17.2.1選項1:改變統計 息
17.2.2選項2:改變數據庫參數
17.2.3選項3:增加或移除訪問路徑
17.2.4選項4:應用基於提示的執行計劃控制機制
17.2.5大綱
17.2.6SQL概要文件
17.2.7SQL執行計劃基線
17.2.8SQL補丁
17.2.9基於提示的計劃控制機理小結
17.3小結
第18章其他SQL結構
18.1條件邏輯結構
18.1.1DECODE
18.1.2CASE
18.1.3NVL、NVL2和COALESCE
18.1.4NULLIF
18.2PIVOT/UNPIVOT查詢
18.2. 1PIVOT
18.2.2UNPIVOT
18.3生成測試數據的SQL
18.3.1想要得到什麼樣的數據
18.3.2CONNECTBY
18.3.3MODEL子句
18.3.4遞歸WITH子句
18.3.5數據生成小結
18.4小結