[ 收藏 ] [ 繁体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  • 新类目

     管理
     投资理财
     经济
     社会科学
  • Oracle查詢優化改寫技巧與案例2.0(博文視點出品)
    該商品所屬分類:圖書 -> 電子工業出版社
    【市場價】
    596-864
    【優惠價】
    373-540
    【作者】 有教無類落落 
    【所屬類別】 電子工業出版社 
    【出版社】電子工業出版社 
    【ISBN】9787121341410
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    出版社:電子工業出版社
    ISBN:9787121341410
    版次:1

    商品編碼:12382434
    品牌:電子工業出版社
    包裝:平裝

    開本:16開
    出版時間:2018-06-01
    用紙:膠版紙

    頁數:368
    字數:488000

    作者:有教無類,落落

        
        
    "

    產品特色

    編輯推薦

    適讀人群 :如果您是開發人員,經常與Oracle打交道,那麼本書可以幫助您處理復雜的需求,寫出高性能的語句。如果您是運維人員,則本書可以幫助您更快地完成慢語句的改寫優化。

    字典式寫作手法:不講具體語法,沒有簡單知識堆砌,直接以案例形式講技巧與案例

    大量優化實戰方法:將主要SQL優化點一一剖析,分享大量SQL優化的實際工作經驗

    50餘改寫調優案例:覆蓋大多數DBA日常工作場景,具有相當大的實用價值

    技巧+案例:可以作為DBA的參考手冊,也可以作為開發人員編寫SQL的速查字典


    《Oracle查詢優化改寫技巧與案例2.0》在《Oracle查詢優化改寫技巧與案例》的基礎上進行了如下更新。

    √所有代碼都重新執行了一遍,以減少謬誤。

    √為了提高清晰度,盡量刪除了圖片,改用文本方式展示案例結果。

    √為了提高閱讀效率,刪除了平時較少用到的內容。

    √為了提高可讀性,大部分案例都改用了SAMPLE中的數據,這樣讀者可以更容易地驗證代碼及思路。

    內容簡介

    《Oracle查詢優化改寫技巧與案例2.0》不講具體語法,隻是以案例的形式介紹各種查詢語句的用法。第1~4章是基礎部分,講述了常用的各種基礎語句,以及常見的錯誤和正確語句的寫法,應熟練掌握這部分內容,因為在日常查詢和優化改寫中都要用到;第5~12章是提高部分,講解了正則表達式、分析函數、樹形查詢及彙總函數的用法,這部分內容常用於一些復雜需求的實現及優化改寫;最後兩章介紹日常的優化改寫案例,這部分內容是前面所學知識的擴展應用。

    如果您是開發人員,經常與Oracle打交道,那麼《Oracle查詢優化改寫技巧與案例2.0》可以幫助您處理復雜的需求,寫出高性能的語句。如果您是運維人員,則本書可以幫助您更快地完成慢語句的改寫優化。


    作者簡介

    師慶棟,網名有教無類。SWOUG(西南Oracle用戶組)成員,資深Oracle開發DBA,道森培訓高級講師。擁有超過17年的IT從業經驗,擅長Oracle數據庫開發,對於數據庫架構設計、性能優化擁有豐富的實戰經驗!通過大量的報表優化改寫,積累了豐富的優化改寫經驗,擅長對Oracle查詢語句的優化改寫。


    羅炳森,網名落落。擅長SQL優化,對Oracle優化器有較深的理解。從2007年至今一直專注於SQL優化、表設計優化、SQL查詢改寫。經常熱心幫助網友解決SQL性能問題,累計SQL優化案例上千個。


    精彩書評

    本書的寫作手法十分樸實,甚至可以說有些章節有點過於簡練,但是瑕不掩瑜,書中實用的內容之多是十分值得肯定的。本書可以作為DBA的參考書籍,也可以作為開發人員編寫SQL的指導書籍。作為DBA行業的一個老兵,我願意向大家推薦這本書,對於優化有興趣的DBA,確實有必要讀一讀這本書。

    ——國內知名專家白鱔

    當教主告訴我他準備寫一本有關SQL編程改寫的書時,我非常高興,感覺到將會有一大批開發人員可以借助這樣一本書使自己的SQL水平提升一個層次。因為我知道這不是一本SQL入門的書,也不是一本專門講優化理論的SQL優化書籍,而是一本結合常見的開發場景介紹編程技巧的書籍。

    ——資深Oracle培訓人員黃超(網名:道道)

    目錄

    第1章 單表查詢 1

    1.1 查詢表中所有的行與列 1

    1.2 從表中檢索部分行 2

    1.3 查找空值 3

    1.4 空值與運算 3

    1.5 處理空值 4

    1.6 空值與函數 5

    1.7 查找滿足多個條件的行 6

    1.8 從表中檢索部分列 7

    1.9 為列取有意義的名稱 7

    1.10 在WHERE子句中引用取別名的列 8

    1.11 拼接列 8

    1.12 在SELECT語句中使用條件邏輯 9

    1.13 限制返回的行數 11


    第2章 給查詢結果排序 12

    2.1 以指定的次序返回查詢結果 12

    2.2 按多個字段排序 14

    2.3 按子串排序 15

    2.4 從表中隨機返回n條記錄 16

    2.5 TRANSLATE 18

    2.6 按數字和字母混合字符串中的字母排序 19

    2.7 處理排序空值 20

    2.8 根據條件取不同列中的值來排序 21


    第3章 操作多個表 23

    3.1 UNION ALL與空字符串 23

    3.2 UNION與OR 24

    3.3 UNION與去重 26

    3.4 組合相關的行 30

    3.5 IN、EXISTS和INNER JOIN 30

    3.6 INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN解析 32

    3.7 外連接與過濾條件 36

    3.8 自關聯 39

    3.9 NOT IN、NOT EXISTS和LEFT JOIN 40

    3.10 檢測兩個表中的數據及對應數據的條數是否相同 43

    3.11 聚集與內連接 44


    第4章 插入、更新與刪除 49

    4.1 插入新記錄 49

    4.2 阻止對某幾列插入 50

    4.3 復制表的定義及數據 51

    4.4 用WITH CHECK OPTION限制數據錄入 51

    4.5 多表插入語句 52

    4.6 用其他表中的值更新 56

    4.7 合並記錄 62

    4.8 刪除違反參照完整性的記錄 64

    4.9 刪除名稱重復的記錄 64


    第5章 使用字符串 67

    5.1 生成連續數值 67

    5.2 遍歷字符串 68

    5.3 計算字符在字符串中出現的次數 69

    5.4 從字符串中刪除不需要的字符 71

    5.5 將字符和數字數據分離 72

    5.6 查詢隻包含字母或數字型的數據 73

    5.7 提取姓名的大寫首字母縮寫 78

    5.8 根據表中的行創建一個分隔列表 79

    5.9 提取第n個分隔的子串 80

    5.10 分解IP地址 82

    5.11 將分隔數據轉換為多值IN列表 82

    5.12 組合去重 83


    第6章 使用數字 86

    6.1 常用聚集函數 86

    6.2 列轉行 88

    6.3 行轉列 89

    6.4 生成累計和 91

    6.5 累計與重復值 95

    6.6 生成排名 97

    6.7 返回最值對應信息 98

    6.8 求總和的百分比 99


    第7章 日期運算 103

    7.1 日期類型 103

    7.2 日期計算 105

    7.3 時間間隔類型 105

    7.4 日期計算函數 106

    7.5 間隔月份 108

    7.6 獲取記錄間的間隔時間 108


    第8章 日期操作 112

    8.1 提取日期中的信息 112

    8.2 提取間隔類型中的信息 115

    8.3 周的計算 117

    8.4 計算一年中周內各日期的次數 119

    8.5 確定一年是否為閏年 123

    8.6 創建本月日歷 123

    8.7 全年日歷 126

    8.8 補充範圍內丟失的值 129

    8.9 識別重疊的日期範圍 131


    第9章 範圍處理 134

    9.1 定位連續值的範圍 134

    9.2 合並連續區間 136

    9.3 合並重疊區間 140

    9.4 用WITH進行範圍分組 143


    第10章 高級查找 147

    10.1 給結果集分頁 147

    10.2 使用管道函數把全表查詢改為增量查詢 149

    10.3 內聯視圖與錯誤數據 153

    10.4 正確使用分析函數 155

    10.5 找到包含最大值和最小值的記錄 157

    10.6 提取維度信息 159


    第11章 報表和數據倉庫運算 162

    11.1 行轉列子句 162

    11.2 列轉行子句 165

    11.3 將結果集反向轉置為一列 168

    11.4 打印小票與行列轉換 169

    11.5 數據分組 172

    11.6 計算簡單的小計 173

    11.7 判別非小計的行 175

    11.8 對不同組/分區同時實現聚集 177

    11.9 移動範圍取值分析 179

    11.10 計算本期、新增、累加 182

    11.11 listagg與小九九 186


    第12章 分層查詢 188

    12.1 簡單的樹形查詢 188

    12.2 根節點、分支節點、葉子節點 190

    12.3 sys_connect_by_path 191

    12.4 樹形查詢中的排序 192

    12.5 樹形查詢中的WHERE 193

    12.6 查詢樹形的一個分支 195

    12.7 剪去一個分支 196

    12.8 多行字符串的拆分 196


    第13章 應用案例實現 199

    13.1 解析簡單公式 199

    13.2 匹配漢字 200

    13.3 多表全外連接的問題 202

    13.4 根據傳入條件返回不同列中的數據 203

    13.5 拆分字符串進行連接 205

    13.6 用“行轉列”來得到隱含信息 206

    13.7 用隱藏數據進行行轉列 208

    13.8 用正則表達式提取clob裡的文本格式記錄集 210


    第14章 改寫調優案例分享 212

    14.1 為什麼不建議使用標量子查詢 212

    14.2 用LEFT JOIN優化標量子查詢 215

    14.3 用LEFT JOIN優化標量子查詢之聚合改寫 216

    14.4 用LEFT JOIN及行轉列優化標量子查詢 217

    14.5 標量中有ROWNUM=1 218

    14.6 ROWNUM=1引起的邏輯問題 219

    14.7 標量中有不等關聯時改寫的問題 222

    14.8 標量中有聚合函數時改寫的問題 226

    14.9 用分析函數優化標量子查詢(一) 229

    14.10 用分析函數優化標量子查詢(二) 231

    14.11 用分析函數優化標量子查詢(三) 233

    14.12 標量中的樹形查詢 235

    14.13 使用標量子查詢優化取最值語句 238

    14.14 用MERGE改寫優化UPDATE 240

    14.15 UPDATE中有ROWNUM=1 243

    14.16 用MERGE使用左聯 245

    14.17 用MERGE改寫UPDATE之多個子查詢 249

    14.18 將UPDATE改寫為MERGE時遇到的問題 251

    14.19 通過分頁方式優化最值語句 254

    14.20 讓分頁語句走正確的PLAN 256

    14.21 去掉分頁查詢中的DISTINCT 257

    14.22 優化有GROUP BY的分頁語句 261

    14.23 用WITH語句優化查詢 264

    14.24 用WITH輔助把OR改為UNION 265

    14.25 錯誤的WITH改寫 269

    14.26 錯誤的分析函數用法 272

    14.27 用LEFT JOIN優化多個子查詢(一) 274

    14.28 用LEFT JOIN優化多個子查詢(二) 278

    14.29 用LEFT JOIN優化多個子查詢(三) 280

    14.30 去掉由EXISTS引起的FILTER 283

    14.31 巧改驅動表提升效率 284

    14.32 用分析函數更改反連接 286

    14.33 集合判斷 288

    14.34 相等集合判斷 289

    14.35 用分析函數改寫最值過濾條件 291

    14.36 用樹形查詢找指定級別的數據 292

    14.37 行轉列與列轉行 293

    14.38 UPDATE、ROW_NUMBER與MERGE 295

    14.39 一個UPDATE語句的優化 298

    14.40 自定義函數對速度的影響 302

    14.41 糾結的MERGE語句 305

    14.42 用CASE WHEN去掉UNION ALL 308

    14.43 不恰當的WITH及標量子查詢 320

    14.44 用分析函數加“行轉列”來優化標量子查詢 323

    14.45 用分析函數處理問題 326

    14.46 用列轉行改寫A表多列關聯B表同列 329

    14.47 用分析函數改寫最值語句 332

    14.48 多列關聯的半連接與索引 334

    14.49 巧用分析函數優化自關聯 335

    14.50 糾結的UPDATE語句 340

    14.51 巧用JOIN條件合並UNION ALL語句 342

    14.52 用分析函數去掉NOT IN 345

    14.53 讀懂查詢中的需求之裁剪語句 349

    14.54 去掉FILTER裡的EXISTS之活學活用 350


    查看全部↓

    前言/序言

    序1


    白鱔

    國內知名DBA專家


    作為一個有二十多年信息繫統工作經歷的老DBA,我最近這十多年的主要工作是繫統優化,從最初的Oracle數據庫優化到現在的信息繫統整體優化、架構優化,這十多年來已經做過上百個案例。雖然做了十多年的優化,但老實說,SQL優化一直是我最不擅長、也最不願意去做的工作,雖然這些年我也被逼著做了不少SQL優化的工作,但我認為自己在這方面還存在缺陷。這些年和我搭檔做優化的老熊、老儲都是SQL優化方面的高手,在SQL優化方面,他們的能力和經驗都遠高於我。我也曾和老熊、老儲他們針對SQL優化工作做過交流,問他們能否寫一本這方面的書。他們雖然做過近十年的SQL優化,但也僅限於見招拆招,對於寫一本這方面的書,他們都覺得難度很大。SQL優化的難度很大,主要有以下方面原因。

    首先是SQL優化工作十分繁雜,在一個維護得比較好的繫統中,需要優化的SQL往往都是業務邏輯十分復雜的SQL語句,而不是簡單地加一個索引就能解決問題,甚至有些SQL語句要打印十多頁紙,想要理解這樣的SQL語句的邏輯含義往往需要花上一段時間。

    其次是SQL優化的方法與手段十分豐富,分析工具、分析方法及分析路徑紛繁復雜,不同的SQL可能需要用不同的分析思路進行分析,很難找到一條放之四海而皆準的準則。要想獲得這些方法隻有兩個途徑:一個是通過自己的實踐不斷總結和積累經驗;另一個是通過閱讀相關的書籍,獲得前人總結好的經驗。

    雖然現在市面上有很多關於Oracle SQL優化的書籍,但絕大多數書籍中介紹的SQL優化僅僅介紹了SQL優化的工具如何使用,執行計劃如何解讀,以及SQL優化從大方向上該如何去做,所舉的例子也往往過於經典,不一定適用於我們的生產環境。特別是到目前為止,還沒有一本十分繫統地介紹SQL改寫技巧的書籍,而SQL改寫卻又是SQL優化中最難的一種工作,也是最實用的一種技術。

    第一次看到本書時,其目錄讓我眼前一亮,這不是一本簡單堆砌知識的書籍,而是一本和大家分享工作經驗的書。從目錄結構就可看出作者對Oracle SQL執行內部機理的認知是十分深入的,同時有大量的SQL優化的實際工作經驗。本書從單表訪問路徑的基礎知識開始講起,將主要的SQL語法中可能的優化點進行一一剖析,總結了大量的優化實戰方法。特別值得一提的是,本書最後一章列舉了近60個實戰案例,內容覆蓋大多數DBA的日常工作場景,具有相當大的實用價值。

    本書的寫作手法十分樸實,甚至可以說有些章節有點過於簡練,但是瑕不掩瑜,書中實用的內容之多是十分值得肯定的。本書可以作為DBA的參考書籍,也可以作為開發人員編寫SQL的指導書籍。作為DBA行業的一個老兵,我願意向大家推薦本書,對優化有興趣的DBA,確實有必要讀一讀本書。


    序2


    黃超(網名:道道)

    道森教育集團負責人,資深Oracle培訓人員


    當教主告訴我他準備寫一本有關SQL編程改寫的書時,我非常高興,感覺到將會有一大批開發人員可以借助這樣一本書將自己的SQL水平提升一個層次。因為我知道這不會是一本SQL入門的書,也不是一本專門講優化理論的SQL優化書籍,而是一本結合常見的開發場景介紹編程技巧的書籍。教主擁有多年的軟件開發和SQL開發經驗,從和他的技術交流中,我也學到了很多SQL技巧,更難得的是,他對同一個SQL有多種不同的寫法,結合一些SQL優化的原理,很容易找到非常高效的寫法。

    教主為人低調,熱心幫助他人,並且在博客上經常分享一些SQL技巧和相關知識。感謝他的無私奉獻,同時期望教主能堅持下去,不斷總結他豐富的SQL開發經驗,並與我們一起溝通交流。




    前言

    因開辦了Oracle優化改寫的在線培訓,在教學和答疑的過程中有很多讀者希望我能推薦一些相關的學習書籍。說實話,有關Oracle的書籍非常多,但在給讀者推薦書籍時我發現特意針對優化改寫的書籍不好找,因為很多資料注重各種語法的實現,對優化方面的知識考慮得較少,而介紹優化知識的書籍對改寫知識涉及得也不多。因此,和落落商量後,嘗試編寫了本書。

    本書共分14章,各章的主要內容如下。

    √第1章介紹初學者在NULL上常犯的錯誤、字符串中單引號的處理方式及模糊查詢時對通配符的轉義。

    √第2章講述了ORDER BY的用法及TRANSLATE的特殊用法。

    √第3章是基礎知識的重點內容,需要掌握好各種連接的寫法及為什麼要左聯、右聯,以及過濾條件錯誤地放在WHERE裡會有什麼影響;當數據有重復值時要直接關聯還是分組彙總後再關聯。

    √第4章介紹了UPDATE語句的正確用法,以及什麼時候UPDATE語句應改寫為MERGE。

    √第5章以案例的形式講解了正則表達式的用法,對正則表達式的基礎語法不熟悉的讀者可以通過官方文檔或我的博客來學習,這裡面對字符串的拆分方法可以直接套用,而對字符串的分組處理難度稍高,不常處理類似數據的讀者可以略過。

    √第6章介紹了常用分析函數的幾個案例,在大部分情況下使用分析函數會讓查詢速度得到很大提升。所以,如果想熟練地改寫,就必須熟悉分析函數的應用。另外,本章還對很多人感到模糊的max() keep()語句進行了分析。

    √第7、8章講了DATE類型的常見用法。

    √第9章仍然介紹分析函數,希望本章內容對範圍的處理能給讀者一些借鋻。

    √第10章的重點是結果集的分頁,要弄清楚如何分頁,為什麼Oracle的分頁會寫得那麼復雜,等等。

    √第11章講述了行列轉換函數,並對兩個函數進行了剖析,理解了其中的原理就可以用UNPIVOT對UNION ALL做一定的優化。本章的另一個重點就是分組彙總小計的統計,熟練掌握ROLLUP及CUBE可以讓你少寫一些UNION ALL語句。

    √第12章能幫助讀者在寫樹形查詢時減少不必要的錯誤,生成更準確的數據。

    √第13章選取了部分網友的需求案例,希望讀者能通過這些案例的啟發找到實現自己需求的思路。

    √第14章選取了能覆蓋目前大部分改寫方法的案例。讀者需要在對前面內容熟悉的基礎上來學習這些案例。各種改寫方法能否提高速度都與對應的環境有關,所以掌握更多的優化知識和改寫方法對優化有很大的幫助。

    在此要特別感謝白鱔老師和我們的同事道道給本書作序,通過白鱔老師寫的序可以看到,他認真閱讀了本書並給出非常中肯的評價,能在百忙之中花費大量時間耐心地把我寫的書看完,確實非常令人感動。另外,還要感謝出版社的各位編輯,有很多地方詞不達意,是他們給我指出了錯誤的地方,並給出了改正意見。

    《Oracle查詢優化改寫技巧與案例2.0》在《Oracle查詢優化改寫技巧與案例》的基礎上進行了如下更新。

    √所有代碼都重新執行了一遍,以減少謬誤。

    √為了提高清晰度,盡量刪除了圖片,改用文本方式展示案例結果。

    √為了提高閱讀效率,刪除了平時較少用到的內容。

    √為了提高可讀性,大部分案例都改用了SAMPLE中的數據,這樣讀者可以更容易地驗證代碼及思路。

    √刪除了實用性不高的實戰案例,另增加了部分實戰案例(詳見最後兩章)。

    因水平有限,本書在編寫過程中難免有錯漏之處,懇請讀者批評、指正。

    作 者

    查看全部↓



    "
     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部