基于oracle的sql優(yōu)化是一本數(shù)據(jù)庫(kù)優(yōu)化扛鼎巨著,是本土Oracle數(shù)據(jù)庫(kù)性能優(yōu)化大師崔華泣血力作。全書共有8章,詳細(xì)的介紹了Oracle里的優(yōu)化器,Oracle里的執(zhí)行計(jì)劃,Oracle里的查詢轉(zhuǎn)換,Oracle里的Hint,Oracle里的并行,Oracle里SQL優(yōu)化的方法論等內(nèi)容,囊括數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)所有分支與脈絡(luò),講解通俗,實(shí)例經(jīng)典,深入研究這些內(nèi)容,SQL優(yōu)化的能力一定會(huì)有巨大提升,歡迎廣大讀者免費(fèi)下載閱讀。
基本介紹
《基于Oracle的SQL優(yōu)化》是一本與眾不同的書,它的目的是使讀者真正掌握如何在Oracle數(shù)據(jù)庫(kù)里寫出高質(zhì)量的SQL語(yǔ)句,以及如何在Oracle數(shù)據(jù)庫(kù)里對(duì)有性能問題的SQL做診斷和調(diào)整。本書從Oracle處理SQL的本質(zhì)和原理入手,由淺入深、系統(tǒng)地介紹了Oracle數(shù)據(jù)庫(kù)里的優(yōu)化器、執(zhí)行計(jì)劃、Cursor和綁定變量、查詢轉(zhuǎn)換、統(tǒng)計(jì)信息、Hint和并行等這些與SQL優(yōu)化息息相關(guān)的本質(zhì)性內(nèi)容,并輔以大量極具借鑒意義的一線SQL優(yōu)化實(shí)例,闡述了作者倡導(dǎo)的“從本質(zhì)和原理入手,以不變應(yīng)萬(wàn)變”的優(yōu)化思路,最后還介紹了作者在實(shí)際工作中總結(jié)出來(lái)的Oracle數(shù)據(jù)庫(kù)里SQL優(yōu)化的方法論。《基于Oracle的SQL優(yōu)化》適用于使用Oracle數(shù)據(jù)庫(kù)的開發(fā)人員、OracleDBA和其他對(duì)Oracle數(shù)據(jù)庫(kù)感興趣的人員,也可以作為各院校相關(guān)專業(yè)的教學(xué)輔導(dǎo)和參考用書,或作為相關(guān)培訓(xùn)機(jī)構(gòu)的培訓(xùn)教材。
《基于oracle的sql優(yōu)化》共8章:
第1章“Oracle里的優(yōu)化器”,詳細(xì)介紹了Oracle數(shù)據(jù)庫(kù)中與優(yōu)化器相關(guān)的各個(gè)方面的內(nèi)容,包括優(yōu)化器的模式、結(jié)果集(RowSource)、集的勢(shì)(Cardinality)、可選擇率(Selectivity)、可傳遞性(Transitivity)、各種數(shù)據(jù)訪問的方法,以及與表連接相關(guān)的內(nèi)容。
第2章“Oracle里的執(zhí)行計(jì)劃”,詳細(xì)介紹了Oracle數(shù)據(jù)里與執(zhí)行計(jì)劃有關(guān)的各個(gè)方面的內(nèi)容,包括執(zhí)行計(jì)劃的含義,如何查看執(zhí)行計(jì)劃,如何得到目標(biāo)SQL真實(shí)的執(zhí)行計(jì)劃,如何查看執(zhí)行計(jì)劃的執(zhí)行順序,Oracle數(shù)據(jù)庫(kù)里各種常見的執(zhí)行計(jì)劃的含義,以及如何在Oracle數(shù)據(jù)庫(kù)中穩(wěn)定執(zhí)行計(jì)劃。
第3章“Oracle里的Cursor和綁定變量”,詳細(xì)介紹了Oracle數(shù)據(jù)庫(kù)中與Cursor和綁定變量相關(guān)的各個(gè)方面的內(nèi)容,包括SharedCursor、SessionCursor、綁定變量、游標(biāo)共享、硬解析、軟解析、軟軟解析,以及與它們息息相關(guān)的Oracle數(shù)據(jù)庫(kù)里的四種應(yīng)用類型。
第4章“Oracle里的查詢轉(zhuǎn)換”,詳細(xì)介紹了Oracle數(shù)據(jù)庫(kù)中與查詢轉(zhuǎn)換有關(guān)的各個(gè)方面的內(nèi)容,包括子查詢展開、視圖合并、星型轉(zhuǎn)換、連接謂詞推入、連接因式分解、表擴(kuò)展、表移除,以及Oracle如何處理SQL語(yǔ)句中的IN。
第5章“Oracle里的統(tǒng)計(jì)信息”,詳細(xì)介紹了Oracle數(shù)據(jù)庫(kù)里與統(tǒng)計(jì)信息相關(guān)的各個(gè)方面的內(nèi)容,包括Oracle數(shù)據(jù)庫(kù)中各種統(tǒng)計(jì)信息的分類、含義、收集和查看方法,以及如何在Oracle數(shù)據(jù)庫(kù)里正確地收集統(tǒng)計(jì)信息。
第6章“Oracle里的Hint”,詳細(xì)介紹了Oracle數(shù)據(jù)庫(kù)中與Hint有關(guān)的各個(gè)方面的內(nèi)容,包括什么是Hint,如何用Hint,Hint什么情況下會(huì)失效,以及Oracle數(shù)據(jù)庫(kù)中常見的各種Hint。
第7章“Oracle里的并行”,詳細(xì)介紹了Oracle數(shù)據(jù)庫(kù)里并行的基本概念以及在Oracle數(shù)據(jù)庫(kù)里如何控制并行,包括在Oracle數(shù)據(jù)庫(kù)里開啟并行、控制并行度等。
第8章“Oracle里SQL優(yōu)化的方法論”,介紹了在Oracle數(shù)據(jù)庫(kù)里如何做SQL優(yōu)化,提出了我們總結(jié)出來(lái)的Oracle數(shù)據(jù)庫(kù)里SQL優(yōu)化的方法論,并結(jié)合實(shí)例驗(yàn)證了上述方法論。
基于oracle的sql優(yōu)化章節(jié)目錄
第1章 Oracle 里的優(yōu)化器 1.1 什么是Oracle 里的優(yōu)化器 1.1.1 基于規(guī)則的優(yōu)化器 1.1.2 基于成本的優(yōu)化器 1.1.2.1 集的勢(shì) 1.1.2.2 可選擇率 1.1.2.3 可傳遞性 1.1.2.4 CBO 的局限性 1.2 優(yōu)化器的基礎(chǔ)知識(shí) 1.2.1 優(yōu)化器的模式 1.2.2 結(jié)果集 1.2.3 訪問數(shù)據(jù)的方法 1.2.3.1 訪問表的方法 1.2.3.1.1 全表掃描 1.2.3.1.2 ROWID 掃描 1.2.3.2 訪問索引的方法 1.2.3.2.1 索引唯一性掃描 1.2.3.2.2 索引范圍掃描 1.2.3.2.3 索引全掃描 1.2.3.2.4 索引快速全掃描 1.2.3.2.5 索引跳躍式掃描 1.2.4 表連接 1.2.4.1 表連接的類型 1.2.4.1.1 內(nèi)連接 1.2.4.1.2 外連接 1.2.4.2 表連接的方法 1.2.4.2.1 排序合并連接 1.2.4.2.2 嵌套循環(huán)連接 1.2.4.2.3 哈希連接 1.2.4.2.4 笛卡兒連接 1.2.4.3 反連接 1.2.4.4 半連接 1.2.4.5 星型連接 1.3 優(yōu)化器模式對(duì)CBO 計(jì)算成本帶來(lái)巨大影響的實(shí)例 1.4 總結(jié) 第2章 Oracle 里的執(zhí)行計(jì)劃 2.1 什么是執(zhí)行計(jì)劃 2.2 如何查看執(zhí)行計(jì)劃 2.2.1 explain plan 命令 2.2.2 DBMS_XPLAN 包 2.2.3 AUTOTRACE 開關(guān) 2.2.4 事件與tkprof 命令 2.3 如何得到真實(shí)的執(zhí)行計(jì)劃 2.4 如何查看執(zhí)行計(jì)劃的執(zhí)行順序 2.5 Oracle 里的常見執(zhí)行計(jì)劃 2.5.1 與表訪問相關(guān)的執(zhí)行計(jì)劃 2.5.2 與B 樹索引相關(guān)的執(zhí)行計(jì)劃 2.5.3 與位圖索引相關(guān)的執(zhí)行計(jì)劃 2.5.4 與表連接相關(guān)的執(zhí)行計(jì)劃 2.5.5 其他典型的執(zhí)行計(jì)劃 2.5.5.1 AND-EQUAL(INDEX MERGE) 2.5.5.2 INDEX JOIN 2.5.5.3 VIEW 2.5.5.4 FILTER 2.5.5.5 SORT 2.5.5.6 UNION/UNION ALL 2.5.5.7 CONCAT 2.5.5.8 CONNECT BY 2.6 Oracle 里執(zhí)行計(jì)劃的穩(wěn)定 2.6.1 使用SQL Profile 來(lái)穩(wěn)定執(zhí)行計(jì)劃 2.6.1.1 Automatic 類型的SQL Profile 2.6.1.2 Manual 類型的SQL Profile 2.6.2 使用SPM 來(lái)穩(wěn)定執(zhí)行計(jì)劃 2.7 總結(jié) 第3章 Oracle 里的Cursor 和綁定變量 3.1 Oracle 里的Cursor 3.1.1 Oracle 里的Shared Cursor 3.1.1.1 Shared Cursor 的含義 3.1.1.2 硬解析 3.1.1.3 軟解析 3.1.2 Oracle 里的Session Cursor 3.1.2.1 Session Cursor 的含義 3.1.2.2 Session Cursor 的相關(guān)參數(shù)解析 3.1.2.2.1 OPEN_CURSORS 3.1.2.2.2 SESSION_CACHED_CURSORS 3.1.2.2.3 CURSOR_SPACE_FOR_TIME 3.1.2.3 Session Cursor 的種類和用法 3.1.2.3.1 隱式游標(biāo) 3.1.2.3.2 顯式游標(biāo) 3.1.2.3.3 參考游標(biāo) 3.2 Oracle 里的綁定變量 3.2.1 綁定變量的作用 3.2.2 綁定變量的典型用法 3.2.3 綁定變量的使用原則和最佳實(shí)踐 3.2.3.1 PL/SQL 批量綁定模板一 3.2.3.2 PL/SQL 批量綁定模板二 3.2.4 綁定變量窺探 3.2.5 綁定變量分級(jí) 3.2.6 綁定變量的個(gè)數(shù)不宜太多 3.2.7 批量綁定時(shí)如何處理錯(cuò)誤 3.2.8 如何得到已執(zhí)行的目標(biāo)SQL 中綁定變量的值 3.3 Oracle 里的游標(biāo)共享 3.3.1 常規(guī)游標(biāo)共享 3.3.2 自適應(yīng)游標(biāo)共享 3.4 Oracle 里的應(yīng)用類型 3.4.1 Session Cursor 的生命周期 3.4.2 應(yīng)用類型一(硬解析) 3.4.3 應(yīng)用類型二(軟解析) 3.4.4 應(yīng)用類型三(軟軟解析) 3.4.5 應(yīng)用類型四(一次解析、多次執(zhí)行) 3.4.6 四種應(yīng)用類型的實(shí)測(cè)性能對(duì)比 3.5 總結(jié) 第4章 Oracle 里的查詢轉(zhuǎn)換 4.1 Oracle 里查詢轉(zhuǎn)換的作用 4.2 子查詢展開 4.3 視圖合并 4.3.1 簡(jiǎn)單視圖合并 4.3.2 外連接視圖合并 4.3.3 復(fù)雜視圖合并 4.4 星型轉(zhuǎn)換 4.5 連接謂詞推入 4.6 連接因式分解 4.7 表擴(kuò)展 4.8 表移除 4.9 Oracle 如何處理SQL 語(yǔ)句中的IN 4.9.1 IN-List Iterator 4.9.2 IN-List Expansion / OR Expansion 4.9.3 IN-List Filter 4.9.4 對(duì)IN 做子查詢展開/視圖合并 4.10 查詢轉(zhuǎn)換的綜合應(yīng)用實(shí)例(邏輯讀從200 萬(wàn)降到6) 4.11 總結(jié) 第5章 Oracle 里的統(tǒng)計(jì)信息 5.1 什么是Oracle 里的統(tǒng)計(jì)信息 5.2 Oracle 里收集與查看統(tǒng)計(jì)信息的方法 5.2.1 收集統(tǒng)計(jì)信息 5.2.1.1 用ANALYZE 命令收集統(tǒng)計(jì)信息 5.2.1.2 用DBMS_STATS 包收集統(tǒng)計(jì)信息 5.2.1.3 ANALYZE 和DBMS_STATS 的區(qū)別 5.2.2 查看統(tǒng)計(jì)信息 5.3 表的統(tǒng)計(jì)信息 5.3.1 表統(tǒng)計(jì)信息的種類和含義 5.3.2 表統(tǒng)計(jì)信息不準(zhǔn)導(dǎo)致SQL 性能問題的實(shí)例 5.4 索引的統(tǒng)計(jì)信息 5.4.1 索引統(tǒng)計(jì)信息的種類和含義 5.4.2 聚簇因子的含義及重要性 5.5 列的統(tǒng)計(jì)信息 5.5.1 列統(tǒng)計(jì)信息的種類和含義 5.5.2 列統(tǒng)計(jì)信息不準(zhǔn)導(dǎo)致謂詞越界的實(shí)例 5.5.3 直方圖 5.5.3.1 直方圖的含義 5.5.3.2 直方圖的類型 5.5.3.2.1 Frequency 類型的直方圖 5.5.3.2.2 Height Balanced 類型的直方圖 5.5.3.3 直方圖的收集方法 5.5.3.4 直方圖對(duì)CBO 的影響 5.5.3.4.1 直方圖對(duì)Shared Cursor 的影響 5.5.3.4.2 直方圖對(duì)可選擇率的影響 5.5.3.5 使用直方圖的注意事項(xiàng) 5.6 全局統(tǒng)計(jì)信息 5.7 動(dòng)態(tài)采樣 5.8 多列統(tǒng)計(jì)信息 5.9 系統(tǒng)統(tǒng)計(jì)信息 5.10 數(shù)據(jù)字典統(tǒng)計(jì)信息 5.11 內(nèi)部對(duì)象統(tǒng)計(jì)信息 5.12 Oracle 里的自動(dòng)統(tǒng)計(jì)信息收集 5.13 Oracle 里應(yīng)如何收集統(tǒng)計(jì)信息 5.14 總結(jié) 第6章 Oracle 里的Hint 6.1 什么是Hint 6.2 Hint 的用法 6.3 Hint 被Oracle 忽略的常見情形 6.3.1 情形一:使用的Hint 有語(yǔ)法或者拼寫錯(cuò)誤 6.3.2 情形二:使用的Hint 無(wú)效 6.3.3 情形三:使用的Hint 自相矛盾 6.3.4 情形四:使用的Hint 受到了查詢轉(zhuǎn)換的干擾 6.3.5 情形五:使用的Hint 受到了保留關(guān)鍵字的干擾 6.4 常見的Hint 6.4.1 與優(yōu)化器模式相關(guān)的Hint 6.4.1.1 ALL_ROWS 6.4.1.2 FIRST_ROWS(n) 6.4.1.3 RULE 6.4.2 與表訪問相關(guān)的Hint 6.4.2.1 FULL 6.4.2.2 ROWID 6.4.3 與索引訪問相關(guān)的Hint 6.4.3.1 INDEX 6.4.3.2 NO_INDEX 6.4.3.3 INDEX_DESC 6.4.3.4 INDEX_COMBINE 6.4.3.5 INDEX_FFS 6.4.3.6 INDEX_JOIN 6.4.3.7 AND_EQUAL 6.4.4 與表連接順序相關(guān)的Hint 6.4.4.1 ORDERED 6.4.4.2 LEADING 6.4.5 與表連接方法相關(guān)的Hint 6.4.5.1 USE_MERGE 6.4.5.2 NO_USE_MERGE 6.4.5.3 USE_NL 6.4.5.4 NO_USE_NL 6.4.5.5 USE_HASH 6.4.5.6 NO_USE_HASH 6.4.5.7 MERGE_AJ 6.4.5.8 NL_AJ 6.4.5.9 HASH_AJ 6.4.5.10 MERGE_SJ 6.4.5.11 NL_SJ 6.4.5.12 HASH_SJ 6.4.6 與查詢轉(zhuǎn)換相關(guān)的Hint 6.4.6.1 USE_CONCAT 6.4.6.2 NO_EXPAND 6.4.6.3 MERGE 6.4.6.4 NO_MERGE 6.4.6.5 UNNEST 6.4.6.6 NO_UNNEST 6.4.6.7 EXPAND_TABLE 6.4.6.8 NO_EXPAND_TABLE 6.4.7 與并行相關(guān)的Hint 6.4.7.1 PARALLEL 6.4.7.2 NO_PARALLEL 6.4.7.3 PARALLEL_INDEX 6.4.7.4 NO_PARALLEL_INDEX 6.4.8 其他常見Hint 6.4.8.1 DRIVING_SITE 6.4.8.2 APPEND 6.4.8.3 APPEND_VALUES 6.4.8.4 PUSH_PRED 6.4.8.5 NO_PUSH_PRED 6.4.8.6 PUSH_SUBQ 6.4.8.7 NO_PUSH_SUBQ 6.4.8.8 OPT_PARAM 6.4.8.9 OPTIMIZER_FEATURES_ENABLE 6.4.8.10 QB_NAME 6.4.8.11 CARDINALITY 6.4.8.12 SWAP_JOIN_INPUTS 6.5 用Cardinality Hint 解決ORA-01555 錯(cuò)誤的實(shí)例 6.6 總結(jié) 第7章 Oracle 里的并行 7.1 Oracle 里并行的基本概念 7.1.1 為什么要用并行 7.1.2 并行的理論基礎(chǔ) 7.1.3 Oracle 里能夠并行執(zhí)行的操作 7.1.4 Oracle 里與并行有關(guān)的術(shù)語(yǔ)及解釋 7.1.4.1 Query Coordinator 7.1.4.2 Query Slaves 和Query Slave Set 7.1.4.3 Table Queues 7.1.4.4 數(shù)據(jù)傳遞方法 7.1.4.5 granules 7.1.4.6 直接讀取 7.1.5 深入解析并行執(zhí)行計(jì)劃的實(shí)例 7.2 Oracle 里并行的控制 7.2.1 Oracle 里如何開啟并行 7.2.2 Oracle 里并行度的控制 7.2.3 Oracle RAC 環(huán)境下的并行 7.2.4 Oracle 里與并行相關(guān)的參數(shù) 7.2.4.1 PARALLEL_MAX_SERVERS 7.2.4.2 PARALLEL_MIN_SERVERS 7.2.4.3 自動(dòng)并行相關(guān)的參數(shù) 7.2.4.3.1 PARALLEL_DEGREE_POLICY 7.2.4.3.2 PARALLEL_MIN_TIME_THRESHOLD 7.2.4.3.3 PARALLEL_DEGREE_LIMIT 7.2.4.3.4 PARALLEL_SERVERS_TARGET 7.2.4.4 自適應(yīng)并行相關(guān)的參數(shù) 7.2.4.4.1 PARALLEL_ADAPTIVE_MULTI_USER 7.2.4.4.2 PARALLEL_MIN_PERCENT 7.2.4.4.3 PARALLEL_AUTOMATIC_TUNING 7.2.4.5 其他參數(shù) 7.2.4.5.1 PARALLEL_THREADS_PER_CPU 7.2.4.5.2 PARALLEL_EXECUTION_MESSAGE_SIZE 7.2.4.5.3 PARALLEL_FORCE_LOCAL 7.2.5 繞開Oracle 并行執(zhí)行Bug 大幅提升性能的實(shí)例 7.3 總結(jié) 第8章 Oracle 里SQL 優(yōu)化的方法論 8.1 Oracle 里如何做SQL 優(yōu)化 8.1.1 Oracle 里SQL 優(yōu)化的本質(zhì)是基于對(duì)CBO 和執(zhí)行計(jì)劃的深刻理解 8.1.2 Oracle 里SQL 優(yōu)化需要聯(lián)系實(shí)際的業(yè)務(wù) 8.1.3 Oracle 里SQL 優(yōu)化需要適時(shí)使用綁定變量 8.2 Oracle 里SQL 優(yōu)化的方法論在實(shí)戰(zhàn)中的驗(yàn)證 8.3 總結(jié)
使用說明
1、下載并解壓,得出pdf文件
2、如果打不開本文件,請(qǐng)務(wù)必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進(jìn)行閱讀
- 下載地址
發(fā)表評(píng)論
1人參與,1條評(píng)論- 第1樓運(yùn)營(yíng)商級(jí)NATIP地址網(wǎng)友發(fā)表于: 2019-12-01 10:57:02
- 絕對(duì)好資料0蓋樓(回復(fù))
軟件排行榜
熱門推薦
- 得間免費(fèi)小說電腦版 v5.3.0.372.58M / 簡(jiǎn)體中文
- cnki全球?qū)W術(shù)快報(bào)電腦版 v1.0.1135.99M / 簡(jiǎn)體中文
- 網(wǎng)易新聞電腦版 v113.197.68M / 簡(jiǎn)體中文
- 開源閱讀電腦版 v3.2517.96M / 簡(jiǎn)體中文
- 京東讀書電腦版 v1.13.4官方版1.98M / 簡(jiǎn)體中文
- 數(shù)據(jù)挖掘?qū)д?官方版61.61M / 簡(jiǎn)體中文
- 吉利博瑞用戶手冊(cè) pdf高清版57.89M / 簡(jiǎn)體中文
- 未公開的Oracle數(shù)據(jù)庫(kù)秘密 迪貝斯pdf掃描版34.69M / 簡(jiǎn)體中文
- PHP語(yǔ)言精粹電子書 pdf掃描版25.72M / 簡(jiǎn)體中文
- linux常用命令大全 chm版1.48M / 簡(jiǎn)體中文