收穫,不止Oracle

收穫,不止Oracle

1324.2.2.1 1364.2.2.3 3416.2.3.1

收穫,不止Oracle頂級專家蓋國強、馮春培、黃志洪等聯袂力薦
梁敬彬梁敬弘


ISBN 978-7-121-20070-0
20134月出版
定價:59.00
480
16
編輯推薦
顛覆IT技術圖書的傳統寫作方式,在妙趣橫生的故事中學到Oracle核心知識與最佳化方法論,讓你擺脫技術束縛,超越技術。
內容提要
在這本書里讀者將會跟隨作者一同對Oracle資料庫的相關知識進行梳理,最終共同提煉出必須最先掌握的那部分知識,無論你是資料庫開發、管理、最佳化、設計人員,還是從事Java、C的開發人員。接下來作者再將這部分知識中最實用的內容進一步提煉,濃縮出最精華的部分,分享給大家。這是二八現象的一次經典套用。
這部分知識就是Oracle的物理體系結構、邏輯體系結構、表、索引以及表連線五大部分。通過閱讀這些章節,讀者將會在最短時間內以一種有史以來最輕鬆的方式,完成對Oracle資料庫的整體認識,不僅能在工作中解決常規問題,還能具備一定的設計和調優能力。相信通過這些章節的學習,會給讀者的Oracle學習帶來極大的收穫。
然而,作者最希望看到的是:讓讀者的收穫,不止Oracle。
為達到此目的,作者精心將全書分成了上下兩篇,剛才所描述的具體知識點體現在全書的上篇,而在下篇中,讀者將通過各種精彩故事、生動案例,體會到該如何學習和如何思考,在意識的天空拋開束縛,無拘無束、盡情飛翔。
在這裡,讀者也許會有疑問,前面說的有史以來最輕鬆的方式是一種什麼樣的方式呢?還請親愛的讀者自己去揭曉謎底吧。
目錄
上篇 開啟驚喜之門——帶意識地學Oracle
第1章意識,少做事從學習開始 2
1.1 選擇先學什麼頗有學問 2
1.1.1 梁老師課堂爆笑開場 2
1.1.2 看似離題的手機分類 4
1.1.3 學什麼先了解做什麼 5
1.2 善於規劃分類才有效果 7
1.2.1 分類與角色密切相關 7
1.2.2 角色自我認識有講究 9
1.3 明白學以致用方有意義 11
第2章震驚,體驗物理體系之旅 13
2.1 必須提及的系列知識 13
2.2 物理體系從老余開店慢慢鋪開 16
2.2.1 老余的三個小故事 16
2.2.1.1 顧客的尺寸 16
2.2.1.2 有效的調整 17
2.2.1.3 記錄的習慣 18
2.2.2 體系結構原理初探 20
2.2.2.1 從一普通查詢SQL說起20
2.2.2.2 老余故事終現用心良苦23
2.2.2.3 一起體會Oracle代價 27
2.2.3 體系結構原理再探 30
2.2.3.1 從一普通更新語句說起30
2.2.3.2 體系結構中提交的探討34
2.2.3.3 勞模的評選 38
2.2.3.4 回滾的研究 40
2.2.3.5 一致的查詢 43
2.2.3.6 一致讀的原理46
2.2.3.7 實踐的體會 49
2.3 體系學習讓SQL性能提升千倍 65
2.3.1 一起探索體系學習的意義 65
2.3.1.1 同學們不知所學何用 66
2.3.1.2 實際上大有用武之地 67
2.3.2 腳踏車到飛船的經典之旅 70
2.3.2.1 未最佳化前,腳踏車速度 70
2.3.2.2 綁定變數,摩托速度 72
2.3.2.3 靜態改寫,汽車速度 74
2.3.2.4 批量提交,動車速度 75
2.3.2.5 集合寫法,飛機速度 77
2.3.2.6 直接路徑,火箭速度 78
2.3.2.7 並行設定,飛船速度 79
2.3.3 精彩的總結與課程展望 80
2.3.3.1 最大的收穫應該是思想80
2.3.3.2 老師的課程展望與規劃81
第3章神奇,走進邏輯體系世界 84
3.1 長幼有序的邏輯體系 84
3.2 邏輯體系從老余養殖細細說起 85
3.2.1 農場之體系邏輯結構 85
3.2.2 農場之BLOCK漫談89
3.2.3 農場之區與段 91
3.2.4 農場之表空間的分類 93
3.2.4.1 表空間與系統農場93
3.2.4.2 表空間與臨時農場93
3.2.4.3 表空間與回滾農場94
3.2.5 邏輯結構之初次體會 94
3.2.5.1 邏輯結構之BLOCK 94
3.2.5.2 邏輯結構之TABLESPACE 95
3.2.5.3 邏輯結構之USER 97
3.2.5.4 邏輯結構之EXTENT 97
3.2.5.5 邏輯結構之SEGMENT 98
3.2.6 邏輯結構之二次體會 100
3.2.6.1 BLOCK的大小與調整 100
3.2.6.2 PCTFREE參數與調整 101
3.2.6.3 PCTFREE與生效範圍 102
3.2.6.4 EXTENT尺寸與調整 103
3.2.7 邏輯結構之三次體會 104
3.2.7.1 已用與未用表空間情況104
3.2.7.2 表空間大小與自動擴展105
3.2.7.3 回滾表空間新建與切換109
3.2.7.4 臨時表空間新建與切換111
3.2.7.5 臨時表空間組及其妙用114
3.3 課程結束你給程式安上了翅膀 117
3.3.1 過度擴展與性能 117
3.3.2 PCTFREE與性能120
3.3.3 行遷移與最佳化 123
3.3.4 塊的大小與套用 124
第4章祝賀,表的設計成就英雄 131
4.1 表的設計之五朵金花 131
4.2 表的特性從老餘一家展開描述 132
4.2.1 老餘一家各施所長 132
4.2.2 普通堆表不足之處 132
4.2.2.1 表更新日誌開銷較大 133
4.2.2.2 delete無法釋放空間 136
4.2.2.3 表記錄太大檢索較慢 139
4.2.2.4 索引回表讀開銷很大 140
4.2.2.5 有序插入卻難有序讀出143
4.2.3 奇特的全局臨時表 146
4.2.3.1 分析全局臨時表的類型146
4.2.3.2 觀察各類DML的REDO量 147
4.2.3.3 全局臨時表兩大重要特性 149
4.2.4 神通廣大的分區表 153
4.2.4.1 分區表類型及原理155
4.2.4.2 分區表最實用的特性 165
4.2.4.3 分區索引類型簡述176
4.2.4.4 分區表之相關陷阱177
4.2.5 有趣的索引組織表 184
4.2.6 簇表的介紹及套用 187
4.3 理解表設計的你成為項目組英雄 189
第5章驚嘆,索引天地妙不可言 191
5.1 看似簡單無趣的索引知識 191
5.2 索引探秘從小余緝兇拉開帷幕 192
5.2.1 BTREE索引的精彩世界 192
5.2.1.1 BTREE索引結構圖展現192
5.2.1.2 到底是物理還是邏輯結構 194
5.2.1.3 索引結構三大重要特點198
5.2.1.4 插播小余緝兇精彩故事201
5.2.1.5 妙用三特徵之高度較低203
5.2.1.6 巧用三特徵之存儲列值219
5.2.1.7 活用三特徵之索引有序248
5.2.1.8 不可不說的主外鍵設計265
5.2.1.9 組合索引高效設計要領272
5.2.1.10變換角度看索引的危害289
5.2.1.11如何合理控制索引數量295
5.2.2 點陣圖索引的玫瑰花之刺 297
5.2.2.1 統計條數奮勇奪冠297
5.2.2.2 即席查詢一騎絕塵302
5.2.2.3 遭遇更新苦不堪言306
5.2.2.4 重複度低一敗塗地309
5.2.2.5 了解結構真相大白311
5.2.3 小心函式索引步步陷阱 315
5.2.3.1 列運算讓索引失去作用315
5.2.3.2 函式索引是這樣套用的317
5.2.3.3 避免列運算的經典案例319
5.3 索引讓一系列最熟悉的SQL飛起來了 325
第6章經典,表的連線學以致用 327
6.1 表的連線之江南三劍客 327
6.2 三大類型從小余跳舞一一道來 328
6.2.1 跳舞也能跳出連線類型 328
6.2.1.1 感覺怪異的嵌套循環 328
6.2.1.2 排序合併及哈希連線 329
6.2.2 各類連線訪問次數差異 330
6.2.2.1 嵌套循環的表訪問次數330
6.2.2.2 哈希連線的表訪問次數337
6.2.2.3 排序合併的表訪問次數340
6.2.3 各類連線驅動順序區別 341
6.2.3.1 嵌套循環的表驅動順序341
6.2.3.2 哈希連線的表驅動順序343
6.2.3.3 排序合併的表驅動順序345
6.2.4 各類連線排序情況分析 347
6.2.4.1 除嵌套循環都需排序 347
6.2.4.2 排序只需取部分欄位 347
6.2.4.3 關於排序的經典案例 349
6.2.5 各類連線限制場景對比 350
6.2.5.1 哈希連線的限制 350
6.2.5.2 排序合併的限制 353
6.2.5.3 嵌套循環無限制 355
6.3 你動手裝備的表連線威震三軍 355
6.3.1 嵌套循環與索引 356
6.3.2 哈希連線與索引 362
6.3.3 排序合併與索引 363
下篇飛翔意識天空——思想與案例的分享
第7章搞定!不靠技術靠菜刀 368
7.1 SQL被一刀剁了 369
7.2 整個模組丟棄了 370
7.3 調用次數減少了 371
7.4 排序不再需要了 372
7.5 大表砍成小表了 373
7.6 排重操作消失了 373
7.7 插入阻礙小多了 374
7.8 遷移事情不做了 375
第8章升級!靠技術改隱形刀 377
8.1 大表等同小表了 378
8.2 大表切成小表了 379
8.3 索引變身小表了 380
8.4 刪除動作不做了 380
8.5 清表角度變換了 381
8.6 提交次數縮減了 382
8.7 遷移越來越快了 384
8.8 SQL語句精簡了 385
第9章提問,也是智慧的體現 391
9.1 描述要考慮周全 392
9.2 用詞要儘量準確 393
9.3 說明要力求簡潔 394
9.4 問過的避免再問 396
9.5 能搜能試不急問 396
第10章買魚,居然買出方法論 398
10.1 小余買魚系列故事 398
10.1.1 診斷與改進 398
10.1.2 需求與設計 401
10.1.3 資源的利用 403
10.1.4 真正的需求 404
10.2 買魚買出了方法論 405
10.2.1 一套流程 405
10.2.2 兩大法寶 407
10.3 方法論的套用案例 408
10.3.1 從我們的這一套流程說起 408
10.3.1.1 診斷 408
10.3.1.2 改進最佳化(首次最佳化) 409
10.3.1.3 需求與設計(再次最佳化) 410
10.3.1.4 資源利用(花絮) 412
10.3.2 案例映襯了經典兩大法寶 412
第11章寶典,規範讓你少做事 414
11.1 抓狂,為何事總忙不完 415
11.1.1 技術能力不足的新人們 415
11.1.2 不懂提問智慧的求助者 415
11.1.3 產生各種失誤的粗心者 416
11.1.3.1 啊,小黃的DDL惹禍 416
11.1.3.2 慘,老師登錯環境了 417
11.1.3.3 糟,小羅忘操作…… 417
11.1.4 解決問題緩慢的技術員 419
11.1.4.1 最佳化效率低下的小高 419
11.1.4.2 為何老師能快速解決 420
11.1.5 陷入種種困境的開發者 422
11.1.5.1 超長SQL使小鄭煩惱 422
11.1.5.2 缺少注釋讓小葉沮喪 422
11.1.6 總是考慮不全的設計者 423
11.1.6.1 未提前規劃的王工 423
11.1.6.2 不了解特性的劉工 424
11.2 淡定,規範少做無謂事 425
11.2.1 學習規範——促成新人快速成長 426
11.2.2 求助規範——引導求助不再迷糊 427
11.2.3 操作規範——協助粗心者不犯錯 428
11.2.4 流程規範——保障問題快速解決 429
11.2.4.1 動態整體 429
11.2.4.2 動態局部 432
11.2.4.3 靜態整體 439
11.2.4.4 靜態局部 448
11.2.5 開發規範——讓開發者駕輕就熟 451
11.2.5.1 SQL編寫規範 452
11.2.5.2 PL/SQL編寫規範 455
11.2.6 設計規範——助設計者運籌帷幄 457
11.2.6.1 表規範 458
11.2.6.2 索引規範 461
11.2.6.3 環境參數規範 467
11.2.6.4 命名規範 469
作者簡介
梁敬彬,網名wabjtam123,任ITPUB版主、ITPUB社區專家、福建富士通公司資料庫專家。參與編寫過《劍破冰山——Oracle開發藝術》、《DBA手記2》等技術書籍,多年從事電信相關行業工作,負責系統架構設計、最佳化、培訓等工作,有著豐富的資料庫管理、設計、開發、培訓經驗和電信行業經驗。
梁敬弘,清華大學計算機系博士畢業,在計算機領域和金融領域皆有建樹,擁有多項計算機相關核心專利技術的同時還擁有金融行業的CFP等高級認證。現就職於華夏銀行總行。
媒體評論
我在ITPUB認識梁敬彬先生始,就拜讀他當時參與的大作《劍破冰山——Oracle開發藝術》,直至今天,這本書里的部分內容在行業里還發揮著重要影響力。從事資料庫事業多年,讀過無數的技術書,有洋洋萬言的,有短小精悍的,但大多寫得正兒八經,有距離感,還有點冷。梁敬彬先生的新書,用生動的故事形式敘述複雜技術,開創資料庫技術書籍故事化的寫作先河。梁先生技術功底和文字功底同樣深厚,更重要的是具有作為講師那種縝密、體系化的思維方式,以及對讀者心思的透視力,因此成書脈絡清晰,裡面還不斷穿插許多人生哲理,技術前瞻,讓人獲益良多。這本書非常適合入行者和在行業里謀求上升的同仁閱讀,動人的文筆可以讓你一口氣讀完這本書,而且完全沒有讀其它技術書籍時那種頭暈腦脹,昏昏入睡的感覺。這是一本值得向行業推介的優秀技術書籍。
黃志洪(tigerfish)
中國資料庫社區ITPUB創始人
多年前作為DBA時我曾經總結過,到底是什麼後天原因能導致人和人之間的學習結果發生重大差異,其中有一點就是思維方式。於是我嘗試在思維方式方面去影響身邊的一些人,最後這些人在各自的領域也都獲得了成功,而在此之前他們卻是默默無聞。思維方式可以由長期的訓練而固化下來,但若是無人在身邊影響你,那么最好就是你自己有意識的發生改變。
敬彬此書就是用詼諧幽默的語言生動地引導大家在意識層面發生改變,然後逐步轉化為行動上的改變,按此堅持幾年下來,相信每個人都能邁上自己新的台階,這的確早已超越oracle的範疇,對我們諸多方面都有益處。
馮春培(biti_rainy)
支付寶平台數據部資深總監
敬彬兄這本書有著與市場上其他Oracle書籍與眾不同的特點,他通過一個個精彩的小故事,串起Oracle的核心知識和最佳化方法論,並時刻強調學習和工作的意識,如何不被技術束縛,如何跳出技術,意識和方法真的很重要。相信讀完本書,你的收穫,絕對不止Oracle!
丁俊(dingjun123)
ITPUB Oracle開發版資深版主
《劍破冰山——Oracle開發藝術》副主編
通讀本書,如醍醐灌頂,豁然開朗,本書從實戰出發,出發於技術,而超脫於意識,回味無窮,作者擁有多年的Oracle套用和體系架構設計的經驗,付出了不亞於任何人的努力,總結出眾多獨到的經驗,不失為一本好書,為學習和使用Oracle的技術人員帶來諸多益處。
傅祥文
福富軟體公司運營總監
由梁敬彬、梁敬弘兄弟合作的《收穫,不止Oracle》一書問世了。這對學習和從事資料庫相關事務的業內人員來說,是一件幸事。讀一本技術方面的書,或修一門課程、聽一個講座,大凡可能有三方面的收穫:掌握相關的知識,提高解決問題的能力,激發學習、探討有關問題的興趣和熱情。這些可能的收穫不在一個層面上,後兩者更為可貴。梁敬彬梁敬弘兄弟的這本書恰恰給讀者提供了這樣的機會。當然,要有真收穫,還要有真努力。
梁敬弘曾是我的學生,不僅學業專精,圍棋也下得很不錯,是一個真誠而聰明的小伙子,跟他的哥哥相比,內向一些。梁敬彬與弟弟相比更善於溝通和表達,是一個資料庫方面的專家,也是一個很好的教師。在此,預祝本書的出版獲得成功,同時也祝兄弟二人在事業上不斷取得新的成就。
黃連生
清華大學計算機系教授
曾經有Oracle的初學者問我,怎么開始學習Oracle?那時候我的答案很簡單:“去下載Oracle的線上文檔,包括Database Concept、Administrator’s Guide,然後開始學著做實驗。”誠然,對學習技術而言,線上文檔是一個不可多得的利器,但是,對於一個剛剛開始接觸Oracle的人來說,要從枯燥的英文文檔中去學習和理解Oracle的技術體系,也許有點勉為其難。就算是市面上眾多的Oracle技術書籍,多數也是堆砌滿了技術細節,隨時可能嚇跑初學者。
好在,現在梁敬彬先生通過自己在日常工作和培訓中的磨練,把自己對Oracle技術的感悟,通過一個一個的小故事,淺顯而又形象地展現了出來。對於初學者來說,可以慢慢地在一個個小故事中去了解Oracle資料庫。讀完這本書,你也許會恍然大悟:“喔,原來Oracle是這樣子的。”
羅海雄(rollingpig)
ITPUB Oracle管理版資深版主
前言
別出心裁另出蹊徑
——與梁敬彬先生序
敬彬的新書就要出版,邀我寫一點感受,於是就有了這一段文字。
我和敬彬相識是在2010年,那時我正在編輯《Oracle DBA手記》一書,偶然被他發表在ITPUB論壇上的一篇文章所吸引,那篇文章的題目是《DBA小故事之SQL診斷》,其內容清晰、行文引人,於是就和他約了那篇稿子加入到書中,期間郵件往來再到北京會面,就此熟識。
從當時的一篇文章到今天的一本書,我能夠清晰地看到作者一以貫之的思考和敘述方式,這種積累與堅持也正是作者成長和成功的要素之一。
當時那篇文章的感受和今天這本書是類似的,作者能夠用曲折的筆觸將自己的經歷真實生動地再現出來,並且帶領讀者一起經歷一次思維的探索,這是屬於他的獨特風格。
作者在書中反覆傳達的核心觀點是:Oracle資料庫看似艱深的原理實際上和生活中的基本常識並無二致。理解了這一層意思,就能夠克服對於這門技藝的畏懼之心,此後的學習自然就能夠順風順水。
誠然如此,我也經常和朋友們說,對於Oracle的很多艱深算法,如果由我們去深思熟慮,其結果都必然大致相同。類似HASH原理,布隆過濾等算法,理解了你就只覺得巧妙而不覺艱深。
現在梁老師就為我們尋找了一系列源於生活、循序漸進的學習路線,如果你能夠細心領會,就會覺得這一門技藝實在是趣味橫生。
蓋國強(eygle)
OracleACE總監
雲和恩墨創始人
ACOUG創始人

相關詞條

熱門詞條

聯絡我們